XMLまたはJSON(要求ヘッダーに応じて)を返すJersey APIを開発しました。私のWindows 2012サーバー(Tomcat)にデプロイされても問題ありません。 Linux上のJerseyからJsonを返す例外をスローする
私が展開
は、AWS(Glassfishの)中でのUbuntuマシンに(Ubuntuの上でそれをコンパイルした後)、私はJSONを要求したとき、私は次のエラーを取得: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
エラーは私はXMLを要求していないとき。
私はもともとJSONのシリアル化にmoxyを使用していましたが、その後はJacksonを使い始めました。
なぜ1つのサーバで動作するのか、別のサーバで動作しないのでしょうか? ありがとう
Glassfishのバグかもしれません。 [このページ](https://stackoverflow.com/questions/33722764/glassfish-error-when-producing-json)を参照してください。 –
@ KoheiTAMURAうん、私はそれを見た。私は彼らが今それを修正したに違いないと思った。明らかにそうではありません... – onefootswill
ジャージー関連のすべての依存関係を「提供済み」とするとどうなりますか? Tomcatにはジャージージャーが付いていないので、矛盾はありません。しかし、グラスフィッシュはジャージーを持っています。したがって、プロジェクトのjarファイルが競合する可能性があります。したがって、Glassfishにデプロイするときにそれらを配備から除外し、Glassfishが提供するものだけを使用する必要があります。 –