使用javax.ws.rs实现Restlet开发REST方式的webservice

使用javax.ws.rs实现Restlet开发REST方式的webservice

JSR311(javax.ws.rs)是Java实现REST Web Service 的规范标准。
本文阐述使用Restlet(http://www.restlet.org)进行REST web service开发步骤。


1)下载restlet最新的稳定版restlet-jee-2.0.3
2)将 javax.ws.rs.jar
        javax.xml.bind.jar
        org.json.jar
        org.restlet.ext.jaxrs.jar
        org.restlet.ext.json.jar
        org.restlet.ext.servlet.jar
        org.restlet.jar

放在WEB-INF/lib目录下

注意,网上有些文章提到需要
com.noelios.restlet.jar
com.noelios.restlet.ext.servlet_2.5.jar
这两个包的是针对restlet旧版(1.1)的jar包,在2版本的实现中已经全部集中到org.restlet包中了

3)使用javax.ws.rs的注解和jaxb的注解编写返回xml数据的请求

package app.test;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement

public class Person {


        private String name;

        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }
       
}

 

package app.test;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
@Path("test")
public class ExampleResource {
            @Path("person/xml")
            @GET
            @Produces("application/xml")
            public Person createPerson() {
                    Person xx = new Person();
                    xx.setName("Helloworld");
                    return xx;
            }
            @GET
            @Path("person/json")
            @Produces("application/json")
            public Person createPerson1() {
                    Person xx = new Person();
                    xx.setName("Helloworld");
                    return xx;
            }
           
            @GET
            @Path("person/{id}")
            public String findPerson(@PathParam("id") String id){
                    Person xx = new Person();
                    xx.setName(id);
                    return xx.getName();
            }

}

 

package app.test;

import java.util.HashSet;
import java.util.Set;
public class ExampleApplication extends javax.ws.rs.core.Application {

    public Set<Class<?>> getClasses() {
        Set<Class<?>> rrcs = new HashSet<Class<?>>();
        rrcs.add(ExampleResource.class);
        return rrcs;
    }
}

 

package app.test;

import org.restlet.Context;
import org.restlet.ext.jaxrs.JaxRsApplication;

public class JaxRsExtensionApplication extends JaxRsApplication {

    public JaxRsExtensionApplication(Context context) {
        super(context);

        this.add(new ExampleApplication());
       
    }
}

 

5)编写web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

        <context-param>
        <param-name>org.restlet.application</param-name>
        <param-value>app.test.JaxRsExtensionApplication</param-value>
        </context-param>
       

<servlet>
<servlet-name>RestletServlet</servlet-name>
<servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>RestletServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>

 

6)访问测试

http://127.0.0.1:8080/test/person/xml
返回xml数据
http://127.0.0.1:8080/test/person/json
返回json数据
http://127.0.0.1:8080/test/person/11
返回plainText

7)使用AJAX方式请求就不多赘述了
8)参考资料
http://www.ibm.com/developerwork ... &S_CMP=reg-ccid

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值