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

环境变量配置问度娘(都是些基本的)

第二步:CXF官网下载CXF3.# (-src的源码包暂时没有用到,但是那一个全部的一定要下载)

傻瓜式操作—>解压之后直接将lib下的所有的jar包都放到eclipse工程下;

使用maven的话;

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” })

public 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);

String bx = webclient.post(data, String.class);

}

ok

心得:由于是第一次接触webservice;对于里面的逻辑、方法还不是很熟悉,但是万事开头难,迈出去第一步以后的路就会好走很多;现在稍微熟悉一点了,就会发现之前遇到的问题其实都不是问题,坚持坚持再坚持,不断的总结分析,就会有收获。

代码比较简单,列了写主要的思路,其实我觉得只要能进行数据的传递,剩下的就是按部就班了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值