package com.leadwinner;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
@Path("ServiceProvider2")
public class ServiceProvider2 {
@GET
@Path("/InchToFeet")
@Produces(MediaType.TEXT_XML)
public String convertInchToFeet(@QueryParam("i") int i) {
int inch=i;
double feet = 0;
feet =(double) inch/12;
return "<InchToFeetService>"
+ "<Inch>" + inch + "</Inch>"
+ "<Feet>" + feet + "</Feet>"
+ "</InchToFeetService>";
}
}
以下 URL 以 XML 形式返回结果:
.../SampleRest/ServiceProvider2/InchToFeet?i=2
这很好,但当我尝试使用 tomcat 服务器运行 HTML 文件时,我收到错误:
webpage not found 404 html files not running in restful web services using jersey
最佳答案
为了使 html 文件也能工作,您应该修改 web.xml 文件以将 Jersey Servlet 仅映射到它应该处理的 URL(RESTful url)。
<web-app>
<servlet>
<servlet-name>MyApplication</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
...
</init-param>
</servlet>
...
<servlet-mapping>
<servlet-name>MyApplication</servlet-name>
<url-pattern>/ServiceProvider2/*</url-pattern>
</servlet-mapping>
...
</web-app>
更多信息here
关于java - 从 HTML 调用 REST Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23734985/