2 Stimmen

Glassfish 3.1, JAXB zählt IllegalAnnotationExceptions, keine Details

Ich habe die folgende Methode:

public String getXML() throws JAXBException, FileNotFoundException {
    StringWriter writer = new StringWriter();
    JAXBContext jc = JAXBContext.newInstance(questionSet.getClass());
    Marshaller m = jc.createMarshaller();
    m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); // Include indentation and linefeeds
    m.marshal(questionSet, writer);

    return writer.toString();
}

Es wirft "9 IllegalAnnotationExceptions" auf der JAXBContext-Instantiierungszeile, die schön in meine Glassfish 3.1-Protokolldatei aufgezeichnet wird. Aber ich sehe keine Details dazu, was diese Zählungen sind. Weiß jemand, warum ich die Details nicht bekomme? Muss ich eine Konfigurationsänderung vornehmen?

Danke!

0 Stimmen

Wie sieht Ihre questionSet Klasse aus ?

0 Stimmen

Was passiert, wenn Sie das JAXBContext in einer eigenständigen Anwendung außerhalb von GlassFish erstellen?

0 Stimmen

Blaise Doughan - Ich würde nicht wissen, wie man den Kontext außerhalb von Glassfish erstellt. Etwas muss es doch hosten, oder? Noch wichtiger ist mein Problem wirklich mit Glassfish und den Logs, die ich versuche zu beheben, um herauszufinden, wie ich die anderen Dinge reparieren kann, richtig? Santosh - Ich könnte die Klasse einbeziehen, aber es ist wirklich eine Sammlung von Klassen, also ist sie GROSS! Außerdem möchte ich hier nicht wirklich die Klassen debuggen, sondern herausfinden, warum nichts im Log angezeigt wird. Kann das von den Klassen selbst beeinflusst werden?

0voto

Eva Donaldson Punkte 285

Ich war nie in der Lage zu bestimmen, warum die Details nicht im Protokoll angezeigt wurden. Allerdings erscheinen die Details in der eingefangenen Fehlermeldung, daher habe ich dort einen Haltepunkt hinzugefügt, anstatt weiter mit dem Protokoll zu kämpfen.

Vielen Dank an alle, die daran gedacht haben!

0voto

Jeffrey Ellis Punkte 1

Versuchen Sie, ein printStackTrace() auf der Ausnahme auszuführen.

Die IllegalAnnotationsException enthält eine Liste von IllegalAnnotationException-Objekten, die Informationen über die problematischen Annotationen enthalten. Leider wird diese Liste nicht an die Ausnahmemeldung angehängt und passt auch nicht direkt in den Stack-Trace, sodass Sie sie möglicherweise nicht durch normales Protokollieren sehen können. Aber die IllegalAnnotationsException überlädt toString(), um diese Informationen einzuschließen. Und printStackTrace() verwendet toString() in seiner Implementierung.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X