我正在尝试使用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 "<html><body>test</body></html>";
}
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getTextUniversityInfo(){
return "test";
}
}
这是文件web.xml
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.gontuseries.university</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
当我测试我的服务时,我得到java.lang.ClassNotFoundException:com.sun.jersey.spi.container.servlet.ServletContainer 我从https://jersey.java.net/download.html
下载了球衣有人能帮助我吗? 感谢
答案 0 :(得分:12)
对我来说问题是服务器在lib文件夹中没有jar。 确保它可以访问以下所有依赖项: 项目 - &gt;属性 - &gt;开发组件 - &gt;添加 - &gt; java构建路径条目。
答案 1 :(得分:9)
我遇到了同样的问题。我们只需要使用Eclipse的提供构建路径。那会有用。
确保它可以访问以下所有依赖项:project - &gt;属性 - &gt;开发组件 - &gt;添加 - &gt; java构建路径条目 - &gt; maven依赖
我刚使用了一个球衣束依赖
“依赖
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-servlet</artifactId>
<version>1.17</version>
依赖性“
如果您使用maven,最好的几个简单步骤将适用于您的应用程序
答案 2 :(得分:7)
伙计,我遇到了同样的问题。我解决了将jersey-servlet-1.18.jar添加到WEB-INF / lib的问题。 然后,这个文件夹看起来像这样:
请记住,将所有这些罐子添加到你的构建路径
答案 3 :(得分:6)
你在使用Jersey 2.x吗?如果是这样,ServletContainer
类已移至另一个包。本文介绍了从Jersey 1.7迁移到2.x时如何更改web.xml的一些很好的信息:
https://java.net/projects/jersey/lists/users/archive/2013-06/message/91
答案 4 :(得分:4)
com.sun.jersey.spi.container.servlet.ServletContainer
类包含在“jersey-servlet.jar”中,因此您应将其与“jersey-server.jar”一起放入WEB-INF / lib。
答案 5 :(得分:1)
我得到了同样的错误 - &#34; java.lang.ClassNotFoundException:com.sun.jersey.spi.container.servlet.ServletContainer&#34;,同时尝试从eclipse执行tomcat中的restful jersey web服务。
以下步骤帮我解决了这个问题:
将maven依赖关系更正为依赖jar的正确版本
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.19</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-servlet</artifactId>
<version>1.19</version>
</dependency>
右键点击eclipse项目 - &gt; Maven - &gt;更新项目
确保在eclipse中正确配置开发程序集。右键单击项目 - 属性 - &gt;开发组件 - &gt;添加 - &gt; java构建路径条目 - &gt; maven依赖
答案 6 :(得分:0)
如果您使用的是JERSEY-jaxrs-ri-2.9版本zip,请在WEB.XML文件中使用下面给出的内容。
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
......
</init-param>
答案 7 :(得分:0)
我在以前运行良好的Eclipse项目中遇到此错误,在Tomcat 7.0上运行。最终我通过从Tomcat中删除项目并再次添加它来解决它。
答案 8 :(得分:0)
以上提供的解决方案是正确的,但即使在进行这些更改后,我也收到此错误。所以我所做的就是删除所有maven下载的Jersey jars并再次使用新的maven依赖更新Project并解决了我的问题
答案 9 :(得分:-1)
由于构建路径问题和过时的依赖项名称,我们收到此错误。最新的一个从org.glassfish开始而不是com.sun.A替换为2.0的最新依赖项:应该添加&#34; Server Runtime&#34; Build Path中的库。
&#34; java.lang.ClassNotFoundException:com.sun.jersey.spi.container.servlet.ServletContainer&#34;
请按照以下步骤解决未找到课程的异常。
右键点击项目 - &gt;构建路径 - &gt;构建路径 - &gt;添加库 - &gt;服务器运行时 - &gt; Apache Tomcat v7.0
谢谢, Sachin G N