Ich habe eine Jersey API entwickelt, die entweder XML oder JSON (abhängig von der Anfrage Header) zurückgibt. Bei der Bereitstellung auf meinem Windows 2012-Server (Tomcat) funktioniert das problemlos.Returning Json aus Jersey auf Linux löst Ausnahme
Wenn ich einsetzen (nachdem es auf Ubuntu kompilieren) zu einem Ubuntu-Rechner in AWS (Glassfish), erhalte ich die folgenden Fehler, wenn ich JSON anfordern:
The server encountered an internal error that prevented it from fulfilling this request.
exception javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.persistence.jaxb.BeanValidationHelper
root cause org.glassfish.jersey.server.ContainerException: java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.persistence.jaxb.BeanValidationHelper
root cause java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.persistence.jaxb.BeanValidationHelper
keine Fehler, wenn ich XML anfordern.
Ich verwendete ursprünglich Moxy für JSON-Serialisierung, aber dann begann mit Jackson.
Irgendwelche Ideen, warum es auf einem Server und nicht einem anderen funktionieren würde? Danke
Könnte ein Fehler von Glassfish sein. Bitte beachten Sie [diese Seite] (https://stackoverflow.com/questions/33722764/glassfish-error-when-producing-json). –
@KoheiTAMURA Ja, ich habe das gesehen. Ich dachte, dass sie es jetzt repariert haben müssen. Anscheinend nicht ... – onefootswill
Was, wenn Sie alle Ihre Jersey bezogenen Abhängigkeiten als "zur Verfügung stellen" setzen? Denken Sie daran, dass Tomcat keine Jersey-Gläser enthält, also gibt es keinen Konflikt. Aber Glassfish _does_ Jersey. So können Ihre Projekteinträge Konflikte verursachen. Daher sollten Sie sie bei der Bereitstellung bei Glassfish aus der Bereitstellung ausschließen und nur die von Glassfish bereitgestellten verwenden. –