我已经尝试了很多建议,但似乎没有一个对我有用。在 tomcat 上部署我的 Jersey 应用程序时,没有发生任何错误。但是当访问任何指定的路径时,它会给我 404 aka 资源不可用。 我会给你我文件的相关部分:
网络.xml
<web-app>
<servlet>
<servlet-name>o2r</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.mypackage.project.MyClass</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>o2r</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
</web-app>
我的类.java
package com.mypackage.project;
... //imports etc
@Path("control")
public class MyClass
{
@GET
@Path("{param}")
public Response getMsg(@PathParam("param") String msg)
//this part is from some mykong tutorial
{
String output = "Jersey say : " + msg;
return Response.status(200).entity(output).build();
}
}
pom.xml
...
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.7</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
<version>7.0.16</version>
</dependency>
...
尝试访问时
http://localhost:8080/MyClass/control/lala
(应该返回“Jersey say : lala”)它只给了我 404。 注意:MyClass 是我的 .WAR 文件的正确名称。
最佳答案
试试这个
com.mypackage.project
而不是 com.mypackage.project.MyClass
关于java - Tomcat 8 和 Jersey 2.7 返回 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23455198/