尝试使用Jersey和tomcat部署休息服务时未打开的特定URL

时间:2017-09-25 07:13:54

标签: java tomcat jersey

我试图使用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)

1 个答案:

答案 0 :(得分:0)

根据web.xml,您需要像访问它一样访问它 http://localhost:8080/warname/rest/hello