CXF webservice之手动启动服务方法(restful )
来源:互联网 发布:python怎么学 编辑:程序博客网 时间:2024/05/16 11:00
首先介绍一下CXF加深一下对于CXF webservice的认识:
Apache CXF =Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfire,现在已经正式更名为 Apache CXF 了,以下简称为 CXF。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用。Apache CXF已经是一个正式的Apache顶级项目。
Apache CXF 是一个开源的Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services ,像 JAX-WS 。这些 Services 可以支持多种协议,比如:SOAP、XML/HTTP、RESTful HTTP 或者 CORBA ,并且可以在多种传输协议上运行,比如:HTTP、JMS 或者 JBI,CXF 大大简化了 Services 的创建,同时它继承了 XFire 传统,一样可以天然地和 Spring 进行无缝集成。
好吧我承认这么官方的说法我是说不出来;网上找到比较准确的解释;
手动启动的方式不需要挂在tomcat服务器,使用cxf提供的jetty服务器。
废话少说,直接进入主题:
第一步:环境配置:
eclipse jee mars.2
tomcat 7
jdk1.7
maven
CXF 3.#
环境变量配置问度娘(都是些基本的)
第二步:CXF官网下载CXF3.# (-src的源码包暂时没有用到,但是那一个全部的一定要下载)
傻瓜式操作--->解压之后直接将lib下的所有的jar包都放到eclipse工程下;
使用maven的话;
<dependency><groupId>javax.ws.rs</groupId><artifactId>jsr311-api</artifactId><version>1.1.1</version></dependency><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-frontend-jaxws</artifactId><version>3.1.4</version></dependency><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-transports-http</artifactId><version>3.1.4</version></dependency><!-- Jetty is needed if you're using the CXFServlet --><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-transports-http-jetty</artifactId><version>3.1.4</version></dependency><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-frontend-jaxrs</artifactId><version>3.1.4</version></dependency><dependency><groupId>org.codehaus.jettison</groupId><artifactId>jettison</artifactId><version>1.3</version></dependency><dependency><groupId>org.codehaus.jackson</groupId><artifactId>jackson-jaxrs</artifactId><version>1.9.8</version></dependency>
第三步:服务器端实现: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
<span style="white-space:pre"></span>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);}
心得:由于是第一次接触webservice;对于里面的逻辑、方法还不是很熟悉,但是万事开头难,迈出去第一步以后的路就会好走很多;现在稍微熟悉一点了,就会发现之前遇到的问题其实都不是问题,坚持坚持再坚持,不断的总结分析,就会有收获。
代码比较简单,列了写主要的思路,其实我觉得只要能进行数据的传递,剩下的就是按部就班了
- CXF webservice之手动启动服务方法(restful )
- RestFul(一)WebService之CXF的RestFul风格开发
- CXF实战之RESTFul服务(七)
- 使用Apache cxf 开发restful webservice 服务的实例
- (三)WebService之CXF发布Web服务
- windows手动启动服务方法
- WebService之CXF创建实体服务(CRUD)
- Spring整合CXF之发布WebService服务
- Spring整合CXF之发布WebService服务
- Spring整合CXF之发布WebService服务
- Spring整合CXF之发布WebService服务
- 利用CXF发布restful WebService
- 使用cxf开发RESTful WebService
- 利用CXF发布restful WebService的注意事项(客户端)
- CXF发布RestFul WebService和SOAP WebService
- CXF实现webService服务(一)
- CXF实现webService服务(一)
- CXF实现webService服务(一) (转)
- 应用jacob组件造成的内存溢出解决方案(java.lang.OutOfMemoryError: Java heap space)
- C++虚函数表
- Linux进程与线程概述
- 使用http代理上网,在hosts文件配置映射时应注意浏览器的代理设置
- TextView 实现跑马灯效果
- CXF webservice之手动启动服务方法(restful )
- Android 点击两次返回键 退出程序
- 【bzoj3694】【最短路】【树链剖分】
- CodeForces#5A. Chat Server's Outgoing Traffic
- UVA 400 Unix is
- 常用正则表达式
- 关于Android自定义view 你所需要知道的基本函数
- 据说年薪30万的Android程序员必须知道的帖子
- c#调试遇到的问题