发现去学习

来源:互联网 发布:逆矩阵 编辑:程序博客网 时间:2024/04/29 16:10
以前一直用xfire觉得听方便的,前几天教同事使用xfire,他也慢慢的熟悉了。今天他问我关于cxf的东西。我也不知道,才发现是整合了xfire的一个插件,比xfire更加简单,更加好用,所以打算学习一下cxf这个插件。而且xfire确实太老了。
我也只是小小的试了一把。从创建服务端和创建客户端也只是需要几分钟的时间,cxf和xfire相比,少了不少的配置文件,不需要再web.xml里面配置servlet添加Xfire,也不需要配置services.xml文件,服务端需要的只是接口和实现类,而客户端只需要接口。
cxf下载地址如下,也可以下载最新的版本
http://people.apache.org/dist/incubator/cxf/2.0.4-incubator/apache-cxf-2.0.4-incubator.zip 

HelloDao readerService = new HelloDao();  
Endpoint.publish("http://localhost:8081/readerService",readerService);  
去启动一个服务只需要这两句话,new一个实现类,然后将这个实现类放到这个链接上就好了。比xfire少了服务端的配置。
但是有一点组要注意的是,如果这段代码在web工程中,你启动了一个web项目,端口是8080的话,如果你再设置这个接口服务的端口是8080,那么,就会有端口冲突,需要重新设置一个端口号,避免冲突。

关于客户端:
JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();  
        factoryBean.setServiceClass(Hello.class);  
        factoryBean.setAddress("http://localhost:8081/readerService");  
        Hello readerService = (Hello)factoryBean.create();  
        String reader = readerService.sayHello("zhang");  

Hello是HelloDao 的接口,接口被创建出来后,我们直接调用方法就好了。

而现在Xfire已经在2007年停止更新,取而代之的是cxf,Xfire我们或许只需要知道他怎么用的就好了,更多的使用cxf。
在这里有个疑问,cxf和httpclient。一个是在服务端开启服务,并提供出来。httpclient也是差不多这个意思。不太明白这两个之间是否有关系,是否可以去比较对比。httpclient走的是http协议,cxf支持的协议很多。不同的协议有啥不同。需要去查一下资料。
0 0