Ich verwende einen GlassFish 4.0 Server und serverseitige JPA-basierte Klassen, die ich über JAX-RS liefern möchte. Dies funktioniert bisher für einfache Entitäten. Wenn ich jedoch eine @ OneToMany-Beziehung habe, zum Beispiel UND eine verknüpfte Entität vorhanden ist, gibt der Server einen internen Serverfehler von 500 zurück. In diesem Fall wird nichts im Serverprotokoll protokolliert. Um den Fehler zu finden, habe ich eine kleine benutzerdefinierte JSP-Seite erstellt, um mehr Informationen darüber zu erhalten, was passiert ist. Der Code ist genau das:
%Vor%Leider ist die Ausgabe nur "Status: 500 Throwable: null"
Mein eigener serverseitiger Code scheint korrekt zu laufen (hat eine Debug-Ausgabe gemacht), aber es taucht dennoch ein Fehler auf. In diesem Beispiel können die Klassen User und Issue problemlos abgerufen werden, sofern keine verknüpfte IssueComment-Entität vorhanden ist:
Benutzerklasse:
%Vor%Benutzerklasse:
%Vor%ProblemKommentar:
%Vor%Der Webservice ist wie folgt:
%Vor%Ich habe den Client-Quellcode weg gelassen, da er serverseitig ist und mit einem normalen Browser reproduziert werden kann, also keine Notwendigkeit für den Client-Code hier IMHO.
Stellen Sie sicher, dass Sie keine zyklischen Referenzen in Graphen (Objekten) haben, die Sie in XML umwandeln möchten. Zum Beispiel könnte dies ein Problem verursachen:
%Vor%oder
%Vor%Solche Strukturen können nicht in XML gemarshallt werden.
Hinweis: Fügen Sie @XmlRootElement
Annotation zu IssueComment
hinzu (ich denke, es wird nicht benötigt, aber es ist besser, es dort zu haben).
Hinweis: Wir kennen das Protokollierungsproblem und es wird als Teil von JERSEY gelöst -2000 .
Tags und Links java glassfish jersey-2.0