WebService CXF学习(6)
9. HelloService service = (HelloService)factory.create(); 10.
11. Customer c1 = new Customer(); 12. c1.setAge(1); 13. c1.setName(\14.
15. Customer c2 = new Customer(); 16. c2.setAge(2); 17. c2.setName(\18.
19. service.save(c1, c2);
20. service.test(\21. } 22. } 23.
最后,测试程序
运行服务端程序,在浏览器地址栏输入http://localhost:8080/helloService?wsdl查看接口是否发布成功。成功则运行一下客户端程序,看看对象传输是否成功。
现在我们来分析一下控制打印的日志信息。 引用
信息: Inbound Message ---------------------------- ID: 1
Address: /HelloWorld Encoding: UTF-8
Content-Type: text/xml; charset=UTF-8
Headers: {content-type=[text/xml; charset=UTF-8], connection=[keep-alive],
Host=[localhost:9000], Content-Length=[184], SOAPAction=[\Content-Type=[text/xml; charset=UTF-8], Accept=[*/*], Pragma=[no-cache], Cache-Control=[no-cache]} Payload: xmlns:soap=\xmlns:ns1=\ Josen
2010-1-9 20:41:56 org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback onClose 信息: Outbound Message --------------------------- ID: 1
Encoding: UTF-8 Content-Type: text/xml Headers: {}
Payload: xmlns:soap=\ xmlns=\xmlns:ns1=\-------------------------------------- 2010-01-09 20:41:56.578::INFO: seeing JVM BUG(s) - cancelling interestOps==0 当客户端向服器发送请求时,服务端LoggingInInterceptor拉截客户端发送过来的SOAP消息,如下: 引用
客户端将请求信息封闭在
服务器接到请求之后,响应客户端。同样以SOAP形式将信息封装好发回客户端,SOAP信息如下: 引用
WebService CXF学习(进阶篇4):JAXB剖析 前面几节我们讲解对象传递,但是通常情况下我们不直接传对象,因为直接传递对象安全性差,而且暴露了实体对象。所以我们选择传递XML文件,当然也可以传递JSON对象。这节我只针对传递XML,那么JAVA绑定成XML,服务端将XML解析成Java对象有什么工具可用吗,其实这样的工具多的是。这里我选择一个比较简单的JAXB工具来讲解一下。
JAXB(Java Architecture for XML Binding)提供了一个快速而方便的方式绑定XML Schemas和java,使java程序员能够很方便的在java应用程序中处理XML数据。JAXB提供了将XML文档解组为java内容树的方法,以及将java内容树重新编组回XML文档的方法。JAXB同样也提供了一种从java对象生成XML Schema的方式。
这里有几个重要的定义:
编组(Marshalling)是把内存中的数据转化到存储媒介上的过程。因此在 Java 和 XML 环境中,编组就是把一些 Java 对象转化成一个(或多个) XML 文档。在数据库环境中,则是把 Java 表示的数据存入数据库。显然,编组的秘密在于把 Java 实例中的面向对象结构转化成适用于 XML 的 扁平结构,或者 RDBMS 中的关系结构(使用 Java 技术转换到 OODBMS 实际上很简单)。工作原理如下图所示:
解组(Unmarshalling) 是把数据从存储媒介转换到内存中的过程--正好与编组相反。因此需要把 XML 文档解组到 Java VM 中。这里的复杂性不是在扁平数据中,因为这不是必需的,而在于从正确的数据到正确的 Java 代码变量的映射。如果映射是错误的,就不可能正确地访问数据。当然,如果再尝试重新编组还会造成更大的问题,并且问题传播得很快。工作原理如下图所示:
往返(Round-tripping)可能是最重要也最容易误解的数据绑定术语。往返用于描述从存储媒介到内存然后回到存储媒介的完整循 环。在 XML 和 Java 技术环境中,这就意味着从 XML 文档到 Java 实例变量,然后再回到 XML 文档。正确的往返要求,如果中间没有修改数据,XML 输入和 XML 输出应该是等同的。
下载地址:http://java.sun.com/developer/technicalArticles/WebServices/jaxb/
我们还以例子来说明它的工作原理,直观点。 第一步,创建一个Customer对象 Java代码
1. @XmlRootElement(name=\
2. @XmlAccessorType(XmlAccessType.FIELD) 3. @XmlType(name = \4. public class Customer { 5.
6. @XmlAttribute(required = true) 7. protected String name;
8. @XmlAttribute(required = true) 9. protected int age; 10. 11. /**
12. * Gets the value of the name property. 13. * 14. * @return
15. * possible object is 16. * {@link String } 17. * 18. */
19. public String getName() { 20. return name; 21. } 22. 23. /**
24. * Sets the value of the name property. 25. *
26. * @param value
27. * allowed object is 28. * {@link String } 29. * 30. */
31. public void setName(String value) { 32. this.name = value; 33. } 34. 35. /**
36. * Gets the value of the age property. 37. * 38. */
39. public int getAge() { 40. return age; 41. } 42. 43. /**
44. * Sets the value of the age property. 45. *
46. */
47. public void setAge(int value) { 48. this.age = value; 49. } 50. 51. } 52. 53.
第二步,创建一个测试类 Java代码
1. public class SoapClient { 2.
3. private final static String MODEL = \
4. public static void main(String[] args) throws ParserConfigurationException, JAXB
Exception, TransformerException{ 5.
6.
7. ObjectFactory factory = new ObjectFactory(); 8. …… 此处隐藏:2632字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [互联网资料]2022年厦门大学机电工程系824机械设计
- [互联网资料]东南大学2022年硕士研究生拟录取名单公
- [互联网资料]能源调研报告(精选多篇)
- [互联网资料]初三英语下学期 中考英语 语法填空训练
- [互联网资料]2022内蒙古选调生行测常识备考:新事物
- [互联网资料]自驾必备!在新西兰租什么样的车自驾游
- [互联网资料]佛教素食菜谱44页未完
- [互联网资料]盈利能力分析外文翻译
- [互联网资料]2022年南昌航空大学音乐学院736马克思
- [互联网资料]优选外贸跟单实习报告总结(精品版)
- [互联网资料]银行新员工培训总结
- [互联网资料]2_year_visa_new_guidance_190316
- [互联网资料]天津市五校宝坻一中静海一中杨村一中芦
- [互联网资料]2007--2008学年第一学期高三数学宁波市
- [互联网资料]Chromatic framework for vision in ba
- [互联网资料]幼儿园大班上学期美术教案《心愿树》含
- [互联网资料]2022年华中农业大学信息学院820微型计
- [互联网资料]硬盘坏道的表现 __硬盘使用久了
- [互联网资料]江苏省2016年会计从业资格考试《会计基
- [互联网资料]公共场所卫生监督试卷全解
- 高级英语第一册所有修辞方法及例子总结
- 综合交通枢纽规划与城市发展
- 沃尔玛的企业文化案例分析
- 美国Thanksgiving Day 感恩节 介绍
- PEP六年级英语上册Unit6How do you fee
- 最齐全的中国大型商场购物中心名单
- 数据结构实验报告八—哈夫曼编译码
- 杭州市余杭区人民政府(通知)
- 七年级语文成语运用专项训练
- 微观经济学第三章 消费者行为 课后习题
- 对_钱学森之问_的思考
- Excel_三级联动_下拉菜单
- 办公用品需求计划申请表
- 对外汉语教材必须要知道的发展史
- 挑战杯大学生学术科技作品竞赛作品申报
- 举办民办教育培训机构应具备下列条件
- 太阳能路灯项目设计方案
- 2013年八年级上最新人教版新教材Unit3I
- 【历史】 6-4 《近代科学之父牛顿》 课
- 高中生物《第四章 第二节 探讨加酶洗衣




