one*_*ill 7 java tomcat jersey tomcat8
我开发了一个返回XML或JSON的Jersey API(取决于请求标头).当部署在我的Windows 2012服务器(Tomcat)上时,它没有问题.
当我(在Ubuntu上编译它之后)部署到AWS(Glassfish)中的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
Run Code Online (Sandbox Code Playgroud)
我请求XML时没有错误.
我最初使用moxy进行JSON序列化,但后来开始使用Jackson.
有什么想法它可以在一台服务器而不是另一台服务器上运行 谢谢
终于让这个工作了。首先,使用 Tomcat,而不是 Glassfish。
然后,添加新的依赖项:
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我还将 Jersey 版本升级到 2.26,但我认为这没有什么区别。只是为了完整性而添加它(正如它确实发生的那样)。
我不明白它起作用的原因。我一直认为 Java 在 Windows 和 Linux 上运行是一样的。但是,嘿,我只是一个愚蠢的 .NET 人。
希望这可以帮助其他像我一样在这个问题上陷入无助的人。
归档时间: |
|
查看次数: |
256 次 |
最近记录: |