java - apache tomcat 服务器上的 500 内部服务器错误

标签 java tomcat war tomcat8

我有一个 war 文件,并将其部署在我的第一台服务器上。那里一切都很好。 你可以在 http://185.126.201.83:10808/crmapi/rest/v1/authentication/hi 上测试它 (端口不同,因为它位于防火墙后面) 但在我的新服务器中,我收到以下错误,并且两台服务器中的所有内容都是相同的。怎么了? 您可以在: http://185.21.76.71:8080/crmapi/rest/v1/authentication/hi 上进行测试:

type Exception report

message Servlet.init() for servlet com.crmapi.services.ApplicationConfig threw exception

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet.init() for servlet com.crmapi.services.ApplicationConfig threw exception
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:745)
root cause

java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map;
    org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:309)
    org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:315)
    org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170)
    org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:358)
    javax.servlet.GenericServlet.init(GenericServlet.java:158)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:745)
note The full stack trace of the root cause is available in the Apache Tomcat/8.0.36 logs.

ubuntu 16.04 服务器 x64 和 Apache Tomcat/8.0.36

最佳答案

Apache Tomcat 堆栈跟踪说明了一切。您的问题肯定是应用程序的类路径中有多个 JAX-RS jar。看起来 javax.ws.rs.core.Application 类是从某个 Jar 加载的,但它没有返回 Java.util.Map 的 getProperties() 方法。你需要严格检查是否存在重复的jar。如果你无法手动找到它,你可以使用像JHade这样的工具来检测是否存在重复的jar。但是如果你太确定应用程序类路径只有一个JAX-RS jar 中,请仔细检查 javax.ws.rs.core.Application 类中是否有所需的 getProperties() 方法。如果您在这些行上调试代码,您最终可能会得到一个解决方案。如果这对您有帮助,请告诉我:)。 PS - JAX RS 1.x jar 没有 getProperties() 方法,但 JAX-RS 2.x 有。

关于java - apache tomcat 服务器上的 500 内部服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38038188/

相关文章:

java - Tomcat 中的单点登录实现

java - Tomcat 5.5 DBCP 连接池数据源关闭

spring-boot - spring boot 2.1.0 war 文件无法在 jsp 中配置 'context-path' 或 'include' 不工作

java - 在java SE 7中,runtimeException和Errors的所有子类是否都是未经检查的异常?

java - 在jsp中传递变量时出错?

java - 创建类路径资源中定义的名为 'sessionFactory' 的 bean 时出错...找不到类

java - 如何在buildr中分解war文件

java - 将自定义类和 JSP 添加到现有的第三方 Java Web 应用程序

java - 如何在 Java 中编写 unicode 十字符号?

java - 如何在java中正确结束长度不确定的文件扫描器while循环