浏览 1884 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2007-11-27 关键字: Apache CXF
Apache CXF 则是由 Celtix 和 XFire 项目整合而生,并且刚刚发布了 2.0.2 的最新版本,不过仍是 Apache 的一个孵化项目。
一、与Axis2的不同之处 1、Apache CXF 支持 WS-Addressing、WS-Policy、WS-RM、WS-Security和WS-I BasicProfile 2、Axis2 支持 WS-Addressing、WS-RM、WS-Security和WS-I BasicProfile,WS-Policy将在新版本里得到支持 3、Apache CXF 是根据Spring哲学来进行编写的,即可以无缝地与Spring进行整合 4、Axis2 不是 5、Axis2 支持更多的 data bindings,包括 XMLBeans、JiBX、JaxMe 和 JaxBRI,以及它原生的 data binding(ADB)。 6、Apache CXF 目前仅支持 JAXB 和 Aegis,并且默认是 JAXB 2.0,与 XFire 默认是支持 Aegis 不同,XMLBeans、JiBX 和 Castor 将在 CXF 2.1 版本中得到支持,目前版本是 2.0.2 7、Axis2 支持多种语言,它有 C/C++ 版本。 8、Apache CXF 提供方便的Spring整合方法,可以通过注解、Spring标签式配置来暴露Web Services和消费Web Services 二、A simple JAX-WS service 原文见http://cwiki.apache.org/CXF20DOC/a-simple-jax-ws-service.html a). 设置构建路径,将下列jar包放到项目中 the CXF distribution commons-logging-1.1.jar geronimo-activation_1.1_spec-1.0-M1.jar (or Sun's Activation jar) geronimo-annotation_1.0_spec-1.1.jar (JSR 250) geronimo-javamail_1.4_spec-1.0-M1.jar (or Sun's JavaMail jar) geronimo-servlet_2.5_spec-1.1-M1.jar (or Sun's Servlet jar) geronimo-ws-metadata_2.0_spec-1.1.1.jar (JSR 181) jaxb-api-2.0.jar jaxb-impl-2.0.5.jar jaxws-api-2.0.jar jetty-6.1.5.jar jetty-util-6.1.5.jar neethi-2.0.jar saaj-api-1.3.jar saaj-impl-1.3.jar stax-api-1.0.1.jar wsdl4j-1.6.1.jar wstx-asl-3.2.1.jar XmlSchema-1.2.jar xml-resolver-1.2.jarSpring jars aopalliance-1.0.jar spring-core-2.0.4.jar spring-beans-2.0.4.jar spring-context-2.0.4.jar spring-web-2.0.4.jarCXF jar cxf-2.0-incubator.jarb). 编写Service代码 接口HelloService.java package demo.cxf.server;![]() import javax.jws.WebParam; import javax.jws.WebService;![]() @WebService public interface HelloService {![]() public String sayHello(@WebParam(name="text")String text); }实现类HelloServiceImpl package demo.cxf.server;![]() import javax.jws.WebService;![]() @WebService(endpointInterface="demo.cxf.server.HelloService",serviceName="helloService") public class HelloServiceImpl implements HelloService { public String sayHello(String text) { return "Hello ".concat(text); }![]() }c). 发布服务 System.out.println("Starting Server"); HelloServiceImpl impl = new HelloServiceImpl(); String addr = "http://localhost:80/helloService"; Endpoint.publish(addr,impl);d). 客户端调用 JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); factory.getInInterceptors().add(new LoggingInInterceptor()); factory.getOutInterceptors().add(new LoggingOutInterceptor()); factory.setServiceClass(HelloService.class); factory.setAddress("http://localhost:9000/helloService"); HelloService service = (HelloService)factory.create(); String reply = service.sayHello("cxf."); System.out.println(reply); System.exit(0);声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2007-11-27
CXF 2.0.3 在半个月前就发布了。
建议大家使用2.0.3, 因为修正了很多2.0.2 之后发现的bug。
|
|
| 返回顶楼 | |
|
时间:2008-04-24
不知道CXF有什么优势 我在Netbeans里面使用标准的JAX-WS很轻松的就能获取对方发布的ws
获得他们的一个Service对象就跟new一个对象一样简单 |
|
| 返回顶楼 | |
|
时间:2008-04-24
Joo 写道 不知道CXF有什么优势 我在Netbeans里面使用标准的JAX-WS很轻松的就能获取对方发布的ws
获得他们的一个Service对象就跟new一个对象一样简单 CXF 也支持JAX-WS API。 如果你想通过spring来配置endpoint的话,CXF是最简单不过的,这是Sun的RI所欠缺的。 CXF采用的apache license, 你可以在CXF之上构建你自己的商业产品而不需要付任何费用,这也是Sun的RI所不及的。 CXF灵活的Binding支持,并提供了CORBA binding 这也是Sun的RI所没有的。 ... |
|
| 返回顶楼 | |
|
时间:2008-04-25
CFX对于RPC/encoded方式的wsdl文档的解析能力怎样,能解析带环对象或者多重引用对象么,对于和GSOAP的通讯支持的怎样。生成的wsdl能否由gsoap提供的wsdl2h无警告方式生产接口呢?
|
|
| 返回顶楼 | |
|
时间:2008-04-26
flamefox 写道 CFX对于RPC/encoded方式的wsdl文档的解析能力怎样,能解析带环对象或者多重引用对象么,对于和GSOAP的通讯支持的怎样。生成的wsdl能否由gsoap提供的wsdl2h无警告方式生产接口呢?
rpc-encoded 这种方式由于互操作性的问题已经被 JAXWS 抛弃掉了。 CXF提供了JAXWS的实现,因此不支持 rpc-encoded。 GSOAP我没有用过,如果GSOAP是以 document-literal方式传输的,那应该和CXF交互没有问题。 |
|
| 返回顶楼 | |
|
时间:2008-04-28
jnn 写道 flamefox 写道 CFX对于RPC/encoded方式的wsdl文档的解析能力怎样,能解析带环对象或者多重引用对象么,对于和GSOAP的通讯支持的怎样。生成的wsdl能否由gsoap提供的wsdl2h无警告方式生产接口呢?
rpc-encoded 这种方式由于互操作性的问题已经被 JAXWS 抛弃掉了。 CXF提供了JAXWS的实现,因此不支持 rpc-encoded。 GSOAP我没有用过,如果GSOAP是以 document-literal方式传输的,那应该和CXF交互没有问题。 抛弃了啊,多好的一个协议啊,既然被抛弃那就算了(传过来的链接关系是怎样解析出来的链接关系就是怎样的,这么好的东西都被抛弃) gsoap解析XFire生成的wsdl显然会发出多个警告,个人以为,gsoap兼容性是最强的 |
|
| 返回顶楼 | |








}
}


