我试图使用jersey和tomcat 8.5部署休息服务。 问题是我在部署时打开了index.html页面但是当我尝试打开特定网址时,它会发送一条消息“源服务器没有找到目标资源的当前表示或者不愿意透露那个存在。“与http 404错误。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID"
version="3.1">
<display-name>RestApi</display-name>
<servlet>
<servlet-name>RestApi</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer.class</servlet-
class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>test</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>RestApi</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
这可能是一个映射问题,但我已经仔细检查了一切。
papackage test;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@Path("/hello")
public class Hello {
@GET
@Produces(MediaType.TEXT_XML)
public String sayHello()
{
String resource="<?xml version='1.0'?>" + "<hello>xml zzz</hello>";
return resource;
}
@GET
@Produces(MediaType.APPLICATION_JSON)
public String sayHelloJASON()
{
String resource= null;
return resource;
}
@GET
@Produces(MediaType.TEXT_HTML)
public String sayHelloHTML()
{
String resource= "<h1>html zzzz</h1>";
return resource;
}
}
同样,当我启动它时,默认情况下会打开索引页面。但是当我尝试访问http://localhost:8080/RestApi/rest/hello时,我收到404错误(原始服务器没有找到目标资源的当前表示或者不愿意透露那个e)