我正在尝试为web服务设置一个简单的Java应用程序。不过,我有以下问题。tomcat服务器无法找到资源http://localhost:8081/OnlineShop/rest/books/list,但它可以找到我的简单servlet http://localhost:8081/OnlineShop/index

我有下面的web.xml

另一方面,我注意到com.sun.jersey.spi.container.servlet.ServletContainer存在于我的项目中,因为我使用maven添加了依赖项,但是jersey.config.server.provider.packages不存在。也许这就是问题所在,但我不知道我必须补充的确切的依赖性。
我的BookRest.java有以下代码,在com.shop.rest包上。

最后,我的pom.xml有以下依赖项。
<dependencies>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.19</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib-ext-spring</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-servlet</artifactId>
<version>1.18</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
<version>1.19</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.19</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>2.17</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>2.17</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
</dependencies>发布于 2015-06-06 16:00:58
拜托,请把整个项目都处理掉。显然,您是一个初学者,似乎只是将随机配置和依赖关系放在一起,可能来自不同的教程。您的依赖项是不兼容的,web.xml配置也是错误的。就像我说的,放弃整个项目,从头开始。如果你刚刚开始,你应该使用其中一个启动应用程序。
您在Netbeans中,所以只需执行以下操作
jersey-quickstart-webapporg.glassfish.jersey.archetypes的您会发现添加的唯一依赖项是
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<!-- use the following artifactId if you don't need servlet 2.x compatibility -->
<!-- artifactId>jersey-container-servlet</artifactId -->
</dependency>web.xml看起来就像
<servlet>
<servlet-name>Jersey Web Application</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.stackoverflow.jersey</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>这将给你一个简单的应用程序的启动和运行。您将看到一个依赖项,需要取消对JSON支持的注释。不要评论。或者更好的是,不要评论它,然后将jersey-media-moxy改为jersey-media-json-jackson。杰克逊是个更好的JSON库。
此外,还可以在泽西文件中找到一些与泽西合作的好的阅读和参考材料。
https://stackoverflow.com/questions/30684707
复制相似问题