从HTML调用REST Web服务

时间:2014-05-19 10:08:04

标签: java xml web-services rest jersey-1.0

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>";  
  }  


}

以下网址以XML格式返回结果:

... / SampleRest / ServiceProvider2 / InchToFeet?I = 2

这很好,但是当我尝试使用tomcat服务器运行HTML文件时,我收到错误:

  

网页未找到404 html文件未在restful Web服务中运行   使用球衣

1 个答案:

答案 0 :(得分:1)

为了使html文件也有效,你应该修改web.xml文件,将你的Jersey Servlet映射到它应该处理的URL(RESTful urls)。

<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