基于CXF 发布 restful风格的webservice

1.建立MAVEN项目
2.在pom.xml引入需要用到的JAR包
<properties>
<cxf.version>2.6.0</cxf.version>
<junit.version>4.11</junit.version>
</properties>
<dependencies>
<!-- CXF需要导入的jar包 -->
<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>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>

3.编写实体类:
package com.deppon.bpms.module.shared.domain;

import java.util.Date;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name="UserInfo")
public class Users {
private String userId;
private String userName;
private String userPwd;
private Integer sex;
private Float sal;
private Date birthday;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
public Float getSal() {
return sal;
}
public void setSal(Float sal) {
this.sal = sal;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String toJson() {
Users gson = new Users();
return gson.toJson();
}
}
4.接口类:
package com.deppon.bpms.module.server.service;
import javax.ws.rs.DELETE;

import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
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;

import com.deppon.bpms.module.shared.domain.Users;


@Path("/a")
public interface UserService {
/**
* 测试GET方法,传人对象、普通参数;返回对象
*
*/
@GET
@Path("/get")
@Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
public Users get(@QueryParam("id") String id);
/**
* 测试PUT方法,传人对象、普通参数;返回对象
* id来源于url后面的参数
* @param user
* @return
*/
@PUT
@Path("/put/{id}")
@Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
public Users put(@PathParam("id")String id,Users u);
/**
* 测试POST方法,传人对象、普通参数;返回对象
*
*/
@POST
@Path("/post/{id}")
@Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
public Users post(@PathParam("id") String id,Users u);
/**
* 测试DELETE方法 ,传人普通参数;返回对象
*/
@DELETE
@Path("/delete/{id}")
@Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
public Users delete(@PathParam("id") String id);
}
5.接口实现类:
package com.deppon.bpms.module.server.service.impl;

import com.deppon.bpms.module.server.service.UserService;

import com.deppon.bpms.module.shared.domain.Users;
import java.util.Date;
public class UserServiceRestFul implements UserService {
@Override
public Users get(String id) {
System.out.println("GET方法,id=" + id);
Users user = new Users();
user.setUserId("get");
user.setUserName("ickes");
user.setUserPwd("ices123");
user.setSex(1);
user.setSal(32F);
user.setBirthday(new Date());
return user;
}
@Override
public Users put(String id, Users u) {
System.out.println("PUT方法,id=" + id + ",users=" + u.toJson());
Users user = new Users();
user.setUserId("put");
user.setUserName("ickes");
user.setUserPwd("ices123");
user.setSex(1);
user.setSal(32F);
user.setBirthday(new Date());
return user;
}
@Override
public Users post(String id, Users u) {
System.out.println("POST方法,id=" + id + ",users=" + u.toJson());
Users user = new Users();
user.setUserId("post");
user.setUserName("ickes");
user.setUserPwd("ices123");
user.setSex(1);
user.setSal(32F);
user.setBirthday(new Date());
return user;
}
@Override
public Users delete(String id) {
System.out.println("DELETE方法,id=" + id);
Users user = new Users();
user.setUserId("delete");
user.setUserName("ickes");
user.setUserPwd("ices123");
user.setSex(1);
user.setSal(32F);
user.setBirthday(new Date());
return user;
}

/*
public static void main(String[] args) {
JAXRSServerFactoryBean jrf = new JAXRSServerFactoryBean();
jrf.setResourceClasses(UserServiceRestFul.class);
jrf.setResourceProvider(UserServiceRestFul.class,
new SingletonResourceProvider(new UserServiceRestFul()));
jrf.setAddress("http://localhost:8080/rest/");
jrf.create();
}*/
}
6.配置spring.xml
<bean id="*********1" class="com.deppon.bpms.module.server.service.impl.*******************">
<property name="trasferEmpServiceDao" ref="trasferEmpServiceDao"/>
</bean>

<jaxrs:server id="restempService" address="/rest">
<jaxrs:serviceBeans>
<ref bean="*********1" />
</jaxrs:serviceBeans>
<jaxrs:extensionMappings>
<entry key="json" value="application/json" />
<entry key="xml" value="application/xml" />
</jaxrs:extensionMappings>
</jaxrs:server>
7:在web.xml中配置servlet:
<!-- Cxf中使用 CXFServlet,发布跟当前项目端口相同的服务 -->
<servlet>
<servlet-name>cxfServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>cxfServlet</servlet-name>
<url-pattern>/v1/*</url-pattern>
</servlet-mapping>
8:启动测试
http:localhost:8080/项目名称/v1/rest/services




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值