Jersey java.lang.ClassNotFoundException:com.sun.jersey.spi.container.servlet.ServletContainer

我正在尝试使用jersey库与Tomcat和Eclipse建立Web服务。 这是我的服务类:

package com.gontuseries.university; import javax.ws.rs.core.MediaType; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; @Path("/university") public class UniversityRestWs { @GET @Produces(MediaType.TEXT_HTML) public String getHtmlUniversityInfo(){ return "test"; } @GET @Produces(MediaType.TEXT_PLAIN) public String getTextUniversityInfo(){ return "test"; } } 

这是文件web.xml

   Jersey REST Service com.sun.jersey.spi.container.servlet.ServletContainer  com.sun.jersey.config.property.packages com.gontuseries.university    Jersey REST Service /rest/*  

当我测试我的服务时,我得到java.lang.ClassNotFoundException:com.sun.jersey.spi.container.servlet.ServletContainer我从https://jersey.java.net/download.html下载了jersey

有人能帮我吗? 谢谢

对我来说问题是服务器在lib文件夹中没有jar。 确保它可以访问以下所有依赖项:project – > properties – > development assembly – > add – > java build path entries。

我遇到了同样的问题。 我们只需要使用Eclipse的提供构建路径。 那会有用。

确保它可以访问所有依赖项:project – > properties – > development assembly – > add – > java build path entries – > maven dependency

我只使用了一个jersey束依赖

“依赖

  com.sun.jersey jersey-servlet 1.17 

依赖”

如果您使用maven,最好的几个简单步骤将适用于您的应用程序

伙计,我有同样的问题。 我解决了将jersey-servlet-1.18.jar添加到WEB-INF / lib的问题。 然后,这个文件夹看起来像这样:

。
请记住,将所有这些jar子添加到您的构建路径中

你在使用Jersey 2.x吗? 如果是这样, ServletContainer类已被移动到另一个包。 本文介绍了从Jersey 1.7迁移到2.x时如何更改web.xml的一些很好的信息: https : //java.net/projects/jersey/lists/users/archive/2013-06/message/91 。

com.sun.jersey.spi.container.servlet.ServletContainer类包含在“jersey-servlet.jar”中,因此您应该将它与“jersey-server.jar”一起放到WEB-INF / lib中。

我得到了同样的错误 – “java.lang.ClassNotFoundException:com.sun.jersey.spi.container.servlet.ServletContainer”,同时尝试从eclipse中执行tomcat中的restful jersey web服务。

以下步骤帮助我解决了这个问题:

  • 将maven依赖关系更正为依赖jar的正确版本

       com.sun.jersey jersey-server 1.19   com.sun.jersey jersey-servlet 1.19  
  • 右键单击eclipse项目 – > Maven – > Update Project

  • 确保在eclipse中正确配置开发程序集。 右键单击项目 – Properties – > development assembly – > Add – > java build path entries – > maven dependency

如果您使用的是JERSEY-jaxrs-ri-2.9版本zip,请在WEB.XML文件中使用下面给出的内容。

 org.glassfish.jersey.servlet.ServletContainer  jersey.config.server.provider.packages ......  

我在以前工作正常,在Tomcat 7.0上运行的Eclipse项目中收到此错误。 最终我通过从Tomcat中删除项目并再次添加它来解决它。

以上提供的解决方案是正确的,但即使在进行这些更改后,我也遇到此错误。 所以我所做的就是删除所有maven下载的Jersey jars并再次使用新的maven依赖更新Project并解决了我的问题

我们得到这个错误是因为构建路径问题和过时的依赖项名称。最新的一个是从org.glassfish开始而不是com.sun.A替换为2.0的最新依赖项后,您应该在Build Path中添加“Server Runtime”库。

“java.lang.ClassNotFoundException:com.sun.jersey.spi.container.servlet.ServletContainer”

请按照以下步骤解决未找到类的exception。

右键单击项目 – > Build Path – > Build Path – > Add Library – > Server Runtime – > Apache Tomcat v7.0

谢谢,Sachin GN