你可能觉得这是一个重复的问题,但同名问题都没有解决我的问题。我正在使用 Jersey 2.0 在 Eclipse 中创建一个 RESTful web 服务,我使用 Tomcat 7.0 作为我的服务器,我有以下 web.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<servlet>
<servlet-name>JAX-RS Servlet</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.shop.domain</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JAX-RS Servlet</servlet-name>
<url-pattern>/jaxrs/*</url-pattern>
</servlet-mapping>
</web-app>
我有一个名为 Hello 的简单类:
@Path("customers")
public class Hello {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getCustomer() {
return "hello";
}
}
我有一个名为 jersey
的 Jersey 库:
每次我运行这个项目,我都会得到错误
java.lang.ClassNotFoundException: org.glassfish.jersey.servlet.ServletContainer
有什么想法吗?
最佳答案
我想这已经得到解答,但只是想添加一个额外的提示。
对于 Eclipse 中的 Web 项目,几乎总是建议使用 Maven 管理依赖项。使用像 m2e 这样的 Maven 插件。将依赖项添加到 Maven 项目后,它应该会自动将这些库部署到 WEB-INF/lib。如果没有(无论出于何种原因),您可以明确地这样做:
- 在 Project Explorer 中右键点击您的项目
- 选择属性
- 选择部署程序集
- 如果 Maven Dependencies 不是条目之一,则库不会自动添加,所以我们现在添加它们
- 选择添加
- 选择Java 构建路径条目
- 选择Maven 依赖项
- 点击完成
这应该将库添加到 WEB-INF/lib,尽管您仍然不会在 Project Explorer View 中看到它们。但是您的 ClassNotFoundException 现在应该消失了。
关于java.lang.ClassNotFoundException : org. glassfish.jersey.servlet.ServletContainer 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26444790/