为了更好的学习CXF,我们从新的角度来研究一下它。
通过使用jetty提供的Servlet容器,可以更快的搭建Web服务环境。
注意:以下代码来源于CXF自带的Sample。
如下图所示建立工程:
所需的Jar包在图中也清晰可见。
代码如下:
Client.java
HelloWorld.java
HelloWorldImpl.java
Server.java
启动Server.java后通过Client.java即可测试Web服务。
注意:
本例支持JAX-WS规范。
JAX-WS规范是一组XML web services的JAVA API。JAX-WS允许开发者可以选择RPC-oriented或者message-oriented 来实现自己的web services。
在 JAX-WS中,一个远程调用可以转换为一个基于XML的协议例如SOAP。在使用JAX-WS过程中,开发者不需要编写任何生成和处理SOAP消息的代码。JAX-WS的运行时实现会将这些API的调用转换成为对于SOAP消息。
在服务器端,用户只需要通过Java语言定义远程调用所需要实现的接口SEI (service endpoint interface),并提供相关的实现,通过调用JAX-WS的服务发布接口就可以将其发布为WebService接口。
在客户端,用户可以通过JAX-WS的API创建一个代理(用本地对象来替代远程的服务)来实现对于远程服务器端的调用。
通过web service所提供的互操作环境,我们可以用JAX-WS轻松实现JAVA平台与其他编程环境(.net等)的互操作。
JAX-WS与JAX-RPC之间的关系
Sun最开始的web services的实现是JAX-RPC 1.1 (JSR 101)。这个实现是基于Java的RPC,并不完全支持schema规范,同时没有对Binding和Parsing定义标准的实现。
JAX-WS2.0 (JSR 224)是Sun新的web services协议栈,是一个完全基于标准的实现。在binding层,使用的是the Java Architecture for XML Binding (JAXB, JSR 222),在parsing层,使用的是the Streaming API for XML (StAX, JSR 173),同时它还完全支持schema规范。
关于JAX-WS的更多资料:
http://www.ibm.com/developerworks/cn/webservices/ws-tip-jaxwsrpc.html
本文通过一个具体的示例介绍了如何使用CXF框架结合JAX-WS规范搭建Web服务。示例包括Server端与Client端的完整代码,展示了如何创建、发布及调用Web服务。此外,还对比了JAX-WS与JAX-RPC的区别。

被折叠的 条评论
为什么被折叠?



