簡體   English   中英

500 Apache Tomcat服務器上的內部服務器錯誤

[英]500 Internal server error on apache tomcat server

我有一個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 Server 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具有jar。

看起來您的JAX-RS版本的jar不匹配。 使用maven控制您的JAX-RS版本。 如果使用球衣,請使用2.23.2或更高版本。

您可以通過http://185.21.76.71:8080/crmapi/application.wadl檢查部署是否成功

看起來您的服務器上的JRE版本不同。

我們可能會做的另一個錯誤是我們沒有將servlet類聲明為public這是我們需要記住的事情,因為servlet容器始終在公共區域中查找servlet類,因此我們的servlet文件必須是public,否則我們將得到錯誤500 - 內部服務器錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM