7
我開發了一個Jersey API,它返回XML或JSON(取決於請求標頭)。部署在我的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。
我最初使用moxy進行JSON序列化,但後來開始使用Jackson。
任何想法,爲什麼它可以在一臺服務器上工作,而不是另一臺服務器上? 謝謝
可能是Glassfish的一個bug。請參閱[本頁](https://stackoverflow.com/questions/33722764/glassfish-error-when-producing-json)。 –
@KheheiTAMURA是的,我看到了。我想他們現在一定已經修好了。顯然不是... – onefootswill
如果你把所有澤西島相關的依賴項都設置爲「提供」,該怎麼辦?請記住,Tomcat中沒有澤西罐,所以沒有衝突。但Glassfish _does_有澤西島。所以你的項目罐子可能會發生衝突。因此,在部署到Glassfish時,您應該從部署中排除它們,並使用Glassfish提供的部分。 –