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