404用eclipse创建Web服务时

时间:2015-10-30 08:57:53

标签: java eclipse rest

为了实现REST Web服务,我正在关注这篇文章:http://www.vogella.com/tutorials/REST/article.html

并做了这些步骤:

  1. 创建动态网络项目
  2. jersey files复制到WEB-INF / lib,如下所示
  3. enter image description here

    1. 在这个包 com.vogella.jersey.first 中创建一个java类(与示例中相同),该类为GET注册其方法,并假设返回text / xml / html

    2. 将我的web.xml复制到此处

    3. enter image description here

      运行我的网络应用程序,我得到404并且这个例外:

       ... Marking servlet Jersey REST Service as unavailable
      
      ott 30, 2015 9:31:58 AM org.apache.catalina.core.StandardContext loadOnStartup
      GRAVE: Servlet [Jersey REST Service] in web application [/com.vogella.jersey.first] threw load() exception
      java.lang.ClassNotFoundException: org.glassfish.jersey.servlet.ServletContainer
          at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1858)
          at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1709)
          at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:506)
          at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:488)
          at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:115)
          at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1148)
          at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
          at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5253)
          at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5543)
          at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
          at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574)
          at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564)
          at java.util.concurrent.FutureTask.run(Unknown Source)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
          at java.lang.Thread.run(Unknown Source)
      
      ott 30, 2015 9:31:58 AM org.apache.coyote.AbstractProtocol start
      INFORMAZIONI: Starting ProtocolHandler ["http-bio-8080"]
      ott 30, 2015 9:31:58 AM org.apache.coyote.AbstractProtocol start
      INFORMAZIONI: Starting ProtocolHandler ["ajp-bio-8009"]
      ott 30, 2015 9:31:58 AM org.apache.catalina.startup.Catalina start
      info: Server startup in 1506 ms
      
      • 这是什么意思?
      • 如何解决?

1 个答案:

答案 0 :(得分:2)

您是否注意到Vogella教程中的罐子与您项目中的罐子完全不同?您项目中的罐子来自Jersey 1.x.本教程使用Jersey 2.x.因此,web.xml中的配置适用于2.x,这与1.x

不同

您可以下载Jersey 2.x here。单击JAX-RS 2.0 RI Bundle链接。你需要的所有罐子都在那里。请注意,该分发中没有JSON / POJO支持jar。你需要单独找到它们。

确保删除项目中当前的所有jar,因为它们可能与较新版本冲突。