CXF WEB service 框架学习笔记 .doc
《CXF WEB service 框架学习笔记 .doc》由会员分享,可在线阅读,更多相关《CXF WEB service 框架学习笔记 .doc(7页珍藏版)》请在三一办公上搜索。
1、http:/cxf.apache.org/docs/index.htmlhttp:/cxf.apache.org/注意,在非java-project中,例如在web-project中可能出现(activation.jar和mail.jar)与工程中的j2ee.jar以及myeclipse中D:MyEclipse 5.5.1 GAmyeclipseeclipsepluginscom.genuitec.eclipse.j2eedt.core_5.5.1datalibrarysetEE_5的javaee.jar里面的同名包发生冲突,建议把j2ee.jar和javaee.jar中的同名包删除,或者直接
2、使用J2ee.jar把eclipse自带的javaee.jar从工程中去除并加入相应的包1. WSDL2JAVA生成客户端代码2. JAXB3. JAX-WS4. WS-Addressing5. WS-Policy6. WS-Security7. webservice 注释8. 拦截器WSDL2JAVA生成客户端代码CXF支持代码生成1)Java to WSDL 、2)WSDL to Java 、3)XSD to WSDL 、4)WSDL to XML 5)WSDL to SOAP 、6)WSDL to service 如下:D:apache-cxf-2.2.5binwsdl2java -d
3、d:/cxf-client -p example1.client http:/127.0.0.1:8080/ws/HelloWorld?wsdlJAXBCXF默认的数据绑定使用的JAXB,XFIRE使用Aegis替代数据绑定就是把java对象转化为xml和把xml文件转化为java对象不管使用任何的XML解析代码库(dom4j等),对于xml只是一个解析工作而已,不能马上绑定到java 对象。对于对象,每次都需要set 或者get相应的属性,当然也可以使用map 来保存xml配置。 于是,一种新的处理方式用于对象和xml之间的映射就变得非常需要,还好sun提供了jaxb,一种很方便的方式来处理
4、java对象和xml内容其中的xjc po.xsd能把xsd中定义的java结构转换为java类,这有点像xmlbeans的scompJAX-WShttps:/jax-JAX-WS规范是一组XML web services的JAVA API (官方:JAX-RPC 2.0 renamed to JAX-WS 2.0)在 JAX-WS中,一个远程调用可以转换为一个基于XML的协议例如SOAP。在使用JAX-WS过程中,开发者不需要编写任何生成和处理SOAP消息的代码。JAX-WS的运行时实现会将这些API的调用转换成为对于SOAP消息。在服务器端,用户只需要通过Java语言定义远程调用所需要实现
5、的接口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规范,同时
6、没有对Binding和Parsing定义标准的实现。JAX-WS2.0 (JSR 224)是Sun新的web services协议栈,是一个完全基于标准的实现。在binding层(xml2java对象),使用的是the Java Architecture for XML Binding (JAXB, JSR 222),在parsing层,使用的是the Streaming API for XML (StAX, JSR 173),同时它还完全支持schema规范。1客户端开发者通过URL得到WSDL文件(通过HTTP访问可以得到http:/?wsdl)2客户端根据WSDL的描述,生成相关clie
7、nt接口代理方法,通过HTTP POST发送SOAP消息给服务器端。3服务器端Listener接受到SOAP请求消息,对JAVA来说,通常是一个servlet或者EJB。Listener把消息转发给 Dispatcher,有时候listener和Dispatcher也可能是同一个类。Dispatcher会把请求消息交给WebService的运行终端。4,这时候,服务器端会将HTTP request转成服务器端的消息类型,形成javax.xml.ws.handler.MessageContext,并处理SOAP消息的头信息,如mustUnderstand。5,如果在服务器端配置了handler,
8、会调用handler的handleMessage方法,通常用handler来承储消息,解密或者保证消息到达的顺序。handler通过在HandlerChain标注配置,handlers.xml文件内容为:handler-chains xmlns= WSSOAPHandler com.cxf.test.WSSOAPHandler WSHandler com.cxf.test.WSHandler 6,SOAP消息被反序列化为JAVA对象,传到真正的实现业务的类。7,调用真正的业务方法,执行后利用JAXB注解序列化成SOAP返回消息。8,如果配置了handler,会调用handler的handleM
9、essage方法。如果业务方法有异常抛出,把异常转为SOAP fault 消息。9,Listener通过HTTP把response返回给客户端。JAX-WS的客户端调用分为proxy方式以及dispatch方式URL wsdlURL = new URL(file:/D:/ wsdl/prjCXFWeb.wsdl);QName serviceQName = new QName( WSCXFProviderService);QName portQName = new QName( WSCXFProviderPort);Service service = Service.create(wsdlURL
10、, serviceQName);WSCXFProvider port = (WSCXFProvider) service.getPort(portQName, WSCXFProvider.class);try System.out.println(port.testWS(message);catch(SOAPFaultException e) System.out.println(e.getFault().getFaultCode(); System.out.println(e.getFault().getFaultString();1,用工具通过WSDL文件产生一个SEI(service e
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CXF WEB service 框架学习笔记 框架 学习 笔记

链接地址:https://www.31ppt.com/p-2396988.html