Java RESTEasy不可用异常HttpServletDispatcher

Java RESTEasy不可用异常HttpServletDispatcher,java,web-services,servlets,resteasy,embedded-jetty,Java,Web Services,Servlets,Resteasy,Embedded Jetty,我搜索了几个小时试图解决这个问题,不幸的是没有成功 我正在使用Java1.6、RESTEasy 2.2.1.GA和Jetty嵌入式服务器来设置Web服务。 最初,我复制了一个现有的工作项目来设置这个项目。不知怎的,原来的项目工作,我的调整副本不工作 启动嵌入式服务器后,出现以下异常: 以下是控制台的说明: 2011-10-27 09:22:51.113::INFO: Logging to STDERR via org.mortbay.log.StdErrLog 2011-10-27 09:22

我搜索了几个小时试图解决这个问题,不幸的是没有成功

我正在使用Java1.6、RESTEasy 2.2.1.GA和Jetty嵌入式服务器来设置Web服务。 最初,我复制了一个现有的工作项目来设置这个项目。不知怎的,原来的项目工作,我的调整副本不工作

启动嵌入式服务器后,出现以下异常:

以下是控制台的说明:

2011-10-27 09:22:51.113::INFO:  Logging to STDERR via org.mortbay.log.StdErrLog
2011-10-27 09:22:51.141::INFO:  jetty-6.0.2
2011-10-27 09:22:51.352::WARN:  failed Resteasy
javax.servlet.UnavailableException: org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
    at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:78)
    at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:229)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:574)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:128)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1219)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:421)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:496)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:119)
    at org.mortbay.jetty.Server.doStart(Server.java:228)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
    at com.xtag.locationadapter.webui.EmbeddedServer.main(EmbeddedServer.java:41)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
2011-10-27 09:22:51.398::WARN:  Failed startup of context org.mortbay.jetty.webapp.WebAppContext@1c5d9084{/admin,file:/Users/workspace/LocationAdapter/webui/target/classes/com/company/locationadapter/webui/webapp/}
javax.servlet.UnavailableException: org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
    at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:78)
    at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:229)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:574)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:128)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1219)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:421)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:496)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:119)
    at org.mortbay.jetty.Server.doStart(Server.java:228)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
    at com.xtag.locationadapter.webui.EmbeddedServer.main(EmbeddedServer.java:41)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
2011-10-27 09:22:51.400::INFO:  Started SocketConnector @ 0.0.0.0:8088
这是我的项目结构。请忽略webui名称不适合此文件夹内容的事实:

   LocationAdapter
    - .idea
    - .settings
    - bin
    - webui
    |- src
      |- main
        |- java
           |- com.company.locationadapter.communication.rest
             |- ResteasyApplication.java
           |- com.company.locationadapter.communication.restservices
             |- LocationResource.java
             |- LocationResourceImpl.java
           |- com.company.locationadapter.service
             |- LocationService.java
             |- LocationServiceImpl.java
           |- com.company.locationadapter.webui
             |- EmbeddedServer.java
        |- resources
           |- com.company.locationadapter.webui.webapp
             |- dummy.html
           |- com.company.locationadapter.webui.webapp.WEB-INF
             |- web.xml 
我的ResteasyApplication类:

public class ResteasyApplication extends Application {

    @Override
    public Set<Object> getSingletons() {
        Set<Object> set = new HashSet<Object>();
        set.add(new LocationResourceImpl());
        return set;
    }

    @Override
    public Set<Class<?>> getClasses() {
        return super.getClasses();
    }
}
用于配置RESTEasy的web.xml文件:

<web-app>

    <display-name>LocationAdapter</display-name>
    <description>Company</description>

    <context-param>
          <param-name>resteasy.servlet.mapping.prefix</param-name>
          <param-value>/locationadapter</param-value>
    </context-param>

     <servlet>
         <servlet-name>Resteasy</servlet-name>
         <servlet-class>
             org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
         </servlet-class>
         <init-param>
             <param-name>javax.ws.rs.Application</param-name>
             <param-value>com.company.locationadapter.communication.rest.ResteasyApplication</param-value>
         </init-param>
     </servlet>

    <servlet-mapping>
        <servlet-name>Resteasy</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>

</web-app>

位置适配器
单位
resteasy.servlet.mapping.prefix
/位置适配器
放松
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
javax.ws.rs.Application
com.company.locationadapter.communication.rest.resteasyaapplication
放松
/*
30
如果有人对这一例外有想法或解决办法,我将不胜感激。 如果你需要更多的信息,请告诉我


提前谢谢

问题解决后,异常是由POM.xml中的一个条目引起的,其中工件“resteasy jaxb provider”的作用域设置为provided

<web-app>

    <display-name>LocationAdapter</display-name>
    <description>Company</description>

    <context-param>
          <param-name>resteasy.servlet.mapping.prefix</param-name>
          <param-value>/locationadapter</param-value>
    </context-param>

     <servlet>
         <servlet-name>Resteasy</servlet-name>
         <servlet-class>
             org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
         </servlet-class>
         <init-param>
             <param-name>javax.ws.rs.Application</param-name>
             <param-value>com.company.locationadapter.communication.rest.ResteasyApplication</param-value>
         </init-param>
     </servlet>

    <servlet-mapping>
        <servlet-name>Resteasy</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>

</web-app>