CXF webservice之手动启动服务方法(restful )

本文介绍了如何使用Apache CXF手动创建并启动一个RESTful Web服务。服务端通过`@Path`、`@GET`和`@POST`注解定义接口,客户端使用`WebClient`进行测试。服务启动类中,通过`JAXRSServerFactoryBean`配置资源类和服务bean,并设置自定义拦截器。

javax.ws.rs

jsr311-api

1.1.1

org.apache.cxf

cxf-rt-frontend-jaxws

3.1.4

org.apache.cxf

cxf-rt-transports-http

3.1.4

org.apache.cxf

cxf-rt-transports-http-jetty

3.1.4

org.apache.cxf

cxf-rt-frontend-jaxrs

3.1.4

org.codehaus.jettison

jettison

1.3

org.codehaus.jackson

jackson-jaxrs

1.9.8

第三步:服务器端实现:Service.class

@Path(“/baoxian”)

@Produces({ MediaType.APPLICATION_JSON })

public class BaoXianService {

private final static Log logger = LogFactory.getLog(BaoXianService.class);

@GET

@Path(“/before/{vincode}”)

public String getinfo(@PathParam(“vincode”) String vincode,

@QueryParam(“name”) String name) {

System.out.println(vincode);

String ret = “my name is :” + name;

return ret;

}

@POST

@Path(“/post/query”)

@Consumes({ “application/json”, “application/xml” })

pub 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 lic String Before_query(String bx) throws Exception {

System.err.println(bx);

return bx;

}

}

下面提供了两种最基本的GET和POSt方法,目的是为了测试数据的传递;需要扩展的自行添加;

第四步:手动启动服务类:

public class Server {

public static void main(String[] args) {

//String address = PropertyUtil.getProperties(“ADDRESS”);

//BaoXianService bxservice = new BaoXianService();

// Service instance

String address = “http://localhost:8080/rest”;//端口号和端口号后面的是可以自定义的;但是要与客户端请求的地址对应;否则不会识别,无法访问

JAXRSServerFactoryBean restServer = new JAXRSServerFactoryBean();

restServer.setResourceClasses(Detail.class);

restServer.getInInterceptors().add(new IpAddressInInterceptor());//自定义的拦截器

restServer.setServiceBean(bxservice);

restServer.setAddress(address);

restServer.create();

}

服务启动成功:

第五步:客户端测试:

static String baseAddress = “localhost:8080/rest”;//与启动类的地址相同

public static void main(String[] args) {

String data = “{“name”:“zhangsan”}”;

WebClient webclient = WebClient.create(baseAddress);

webclient.path(“post/query”)

.accept(MediaType.APPLICATION_JSON)

.type(MediaType.APPLICATION_JSON);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值