HTTP状态500 - 用于servlet异常的Servlet.init()

时间:2015-04-06 16:01:03

标签: java servlets

在你说" DUPLICATE"之前,我向你保证我已经看过其他人了。它们都与我的要求不同。所以我让网络应用程序工作,改变了齿轮并回到它,现在我得到了它。

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)这样的东西,但事情却有所不同。我正在努力建立一个宁静的服务,我在项目中的所有内容都是Path(blah)。我认为它们是相似的,但就是这样。其他问题的解决方案之一是在请求的映射中使用pu *.do或类似的东西,但即使我在我的工作中,我从未在项目中使用过。

我能想到的唯一不同之处是我在这里向AppConfig getClasses()添加了第三个类:

@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之前,现在我做了吗?

感谢您的一切。

1 个答案:

答案 0 :(得分:0)

这:java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map;

在我看来,你已经加载了两个JAX-RS库。第一次运行时,它使用了您期望的那个。现在你回来了,它首先找到了另一个。

您需要查看类路径并查看有助于JAX-RS库的内容。我敢打赌你至少有两个。

在Java EE 7中添加了getProperties()方法。因此,您可能仍然拥有符合Java EE 6的工件。