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

use*_*498 7 java eclipse tomcat jersey

我正在尝试使用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";
    }
}
Run Code Online (Sandbox Code Playgroud)

这是文件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>
Run Code Online (Sandbox Code Playgroud)

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

有人能帮我吗?谢谢

小智 12

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


Swa*_*wal 9

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

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

我只使用了一个球衣束依赖

"依赖

        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-servlet</artifactId>
        <version>1.17</version>
Run Code Online (Sandbox Code Playgroud)

依赖"

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


Nat*_*rio 7

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

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


bic*_*ter 6

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


Ján*_*aša 4

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