环境变量配置问度娘(都是些基本的)
第二步: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;对于里面的逻辑、方法还不是很熟悉,但是万事开头难,迈出去第一步以后的路就会好走很多;现在稍微熟悉一点了,就会发现之前遇到的问题其实都不是问题,坚持坚持再坚持,不断的总结分析,就会有收获。
代码比较简单,列了写主要的思路,其实我觉得只要能进行数据的传递,剩下的就是按部就班了