HTTP 状态 500 - Servlet.init() for servlet Exception
HTTP Status 500 - Servlet.init() for servlet Exception
在你说 "DUPLICATE" 之前,我向你保证我已经看过其他人了。它们都与我要问的不同。所以我让 Web 应用程序正常工作,换档并返回它,现在我明白了。
javax.servlet.ServletException: Servlet.init() for servlet com.xxxx.xxx.xxx.AppConfig threw exception
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515)
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:501)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515)
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)
我查看了人们遇到的其他一些类似问题,总有类似 RequestedMaping(blah)
的问题,但这就是不同之处。我正在开发 restful 服务,而我的项目中只有 Path(blah)
。我认为它们是相似的,但仅此而已。其他问题的解决方案之一是在请求的映射中使用 pu *.do
或类似的东西,但即使我有我的工作,我也从未在项目中使用过。
我认为我对项目所做的唯一不同是在此处向 AppConfig getClasses()
添加了第三个 class:
@ApplicationPath("/rest")
public class AppConfig extends Application {
private static final Logger LOGGER = LoggerFactory.getLogger(AppConfig.class);
/**
* @see Application#getClasses()
*/
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> s = new HashSet<Class<?>>();
s.add(EntityManagementResource.class);
s.add(AccumuloInterfaceResource.class);
s.add(JacksonJsonProvider.class);
return s;
}
以前我没有AccumuloInterfaceResource.class
,现在我有?
感谢任何事情。
这个:java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map;
在我看来,您加载了两个 JAX-RS 库。您第一次 运行 时,它使用了您期望的那个。现在你回来了,它先找另一个。
您需要查看您的类路径,看看是什么贡献了 JAX-RS 库。我敢打赌你至少有两个。
getProperties() 方法已添加到 Java EE 7 中。因此您可能仍然拥有 Java EE 6 兼容的工件。
在你说 "DUPLICATE" 之前,我向你保证我已经看过其他人了。它们都与我要问的不同。所以我让 Web 应用程序正常工作,换档并返回它,现在我明白了。
javax.servlet.ServletException: Servlet.init() for servlet com.xxxx.xxx.xxx.AppConfig threw exception
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515)
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:501)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515)
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)
我查看了人们遇到的其他一些类似问题,总有类似 RequestedMaping(blah)
的问题,但这就是不同之处。我正在开发 restful 服务,而我的项目中只有 Path(blah)
。我认为它们是相似的,但仅此而已。其他问题的解决方案之一是在请求的映射中使用 pu *.do
或类似的东西,但即使我有我的工作,我也从未在项目中使用过。
我认为我对项目所做的唯一不同是在此处向 AppConfig getClasses()
添加了第三个 class:
@ApplicationPath("/rest")
public class AppConfig extends Application {
private static final Logger LOGGER = LoggerFactory.getLogger(AppConfig.class);
/**
* @see Application#getClasses()
*/
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> s = new HashSet<Class<?>>();
s.add(EntityManagementResource.class);
s.add(AccumuloInterfaceResource.class);
s.add(JacksonJsonProvider.class);
return s;
}
以前我没有AccumuloInterfaceResource.class
,现在我有?
感谢任何事情。
这个:java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map;
在我看来,您加载了两个 JAX-RS 库。您第一次 运行 时,它使用了您期望的那个。现在你回来了,它先找另一个。
您需要查看您的类路径,看看是什么贡献了 JAX-RS 库。我敢打赌你至少有两个。
getProperties() 方法已添加到 Java EE 7 中。因此您可能仍然拥有 Java EE 6 兼容的工件。