您的位置:首页 > 其它

RESTFUL接口开发

2015-01-25 15:24 99 查看
1、需要导入的包
<!-- CXF START -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>${cxf.version}</version>
<exclusions>
<exclusion>
<artifactId>geronimo-servlet_2.5_spec</artifactId>
<groupId>org.apache.geronimo.specs</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- CXF END -->

<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0</version>
</dependency>

<dependency>
<groupId>org.codehaus.jettison</groupId>
<artifactId>com.springsource.org.codehaus.jettison</artifactId>
<version>1.0.1</version>
</dependency>

2、编写接口和实现类

package com.demo.inter.rest;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "User")
public class User {
private String id;
private String name;

public User() {
super();
}

public User(String id, String name) {
this.id = id;
this.name = name;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getName() {
return name;
}

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

}


package com.demo.inter.rest;

import java.util.List;

import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;

public interface IRest_HelloWorld {
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("/say/{name}")
public String say(@PathParam("name") String name);

@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("/sayHello/{name}")
public String sayHello(@PathParam("user") User user);

@GET
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Path("/getList/{id}")
public List<User> getList(@PathParam("id") String id);
}


package com.demo.inter.rest;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Service;

@Service("rest_HelloWorldImpl")
public class Rest_HelloWorldImpl implements IRest_HelloWorld {

public String say(String name) {
return name+",您好!";
}

public String sayHello(User user) {
return user.getName()+",您好!";
}

public List<User> getList(String id){
List<User> list = new ArrayList<User>();

String sid="1L";
User user = new User(sid,"张三"+sid);
list.add(user);

sid="2L";
user = new User(sid,"张三"+sid);
list.add(user);

sid= "3L";
user = new User(sid,"张三"+sid);
list.add(user);
return list;
}

}


3、修改spring配置文件
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"

xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:jaxrs="http://cxf.apache.org/jaxrs"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd

http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd

http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd">
上面粗体的为需要添加的内容

<!--导入cxf需要配置文件-->
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

<!--发布接口-->
<bean id="Rest_HelloWorldImpl" class="com.demo.inter.rest.Rest_HelloWorldImpl" />
<!-- 这里的地址很重要,客户端需要通过这个地址来访问WebService -->
<jaxrs:server id="restServiceContainer" address="/rest">
<jaxrs:serviceBeans>
<ref bean="Rest_HelloWorldImpl" />
</jaxrs:serviceBeans>
<jaxrs:extensionMappings>
<entry key="json" value="application/json" />
<entry key="xml" value="application/xml" />
</jaxrs:extensionMappings>
<jaxrs:languageMappings>
<entry key="en" value="utf-8" />
</jaxrs:languageMappings>
</jaxrs:server>

4、测试
http://localhost:8080/MyTools/webservice/rest/say/111
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: