快速业务通道

Java Web服务,第3部分: Axis2数据绑定 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
on Never Sleeps"; isbn = "0445203498"; try { AddBookDocument abd = AddBookDocument.Factory.newInstance(); AddBookDocument.AddBook ab = abd.addNewAddBook(); ab.setAuthorArray(new String[] { "Cook, Glen" }); ab.setIsbn(isbn); ab.setTitle(title); ab.setType("scifi"); stub.addBook(abd); System.out.println("Added ''" + title + ''\''''); title = "This Should Not Work"; ab.setTitle(title); stub.addBook(abd); System.out.println("Added duplicate book - should not happen!"); } catch (AddDuplicateFaultException e) { System.out.println("Failed adding ''" + title + "'' with ISBN ''" + isbn + "'' - matches existing title ''" + e.getFaultMessage().getAddDuplicate().getBook().getTitle() + ''\''''); } // create a callback instance BooksByTypeCallback cb = new BooksByTypeCallback(); // retrieve all books of a type asynchronously GetBooksByTypeDocument gbtd = GetBooksByTypeDocument.Factory.newInstance(); gbtd.addNewGetBooksByType().setType("scifi"); stub.startgetBooksByType(gbtd, cb); long start = System.currentTimeMillis(); synchronized (cb) { while (!cb.m_done) { try { cb.wait(100L); } catch (Exception e) {} } } System.out.println("Asynchronous operation took " + (System.currentTimeMillis()-start) + " millis"); if (cb.m_response != null) { BookInformation[] books = cb.m_response.getGetBooksByTypeResponse().getGetBooksByTypeReturnArray(); ...

Java Web服务,第3部分: Axis2数据绑定(9)

时间:2011-04-09 IBM Dennis Sosnoski

清单 7 中的客户和对应的服务器代码可在 Axis2 1.1.1 下正常执行,但由于1.2 版中针 对 XMLBeans 的错误处理代码生成存在问题,会在添加重复书籍 ID 时遇到意外异常,从而 失败。这个问题应该已经在下一个 Axis2 版本中得到解决。

尽管 XMLBeans 声称 100% 支持 XML 模式,但这个说法的准确性有待商榷。对于几乎任 何模式构造,XMLBeans 都生成了一组能用于读写匹配此模式的文档。但与本文讨论的其他数 据绑定框架不同的是,XMLBeans 缺省情况下并不进行任何工作来执行模式。例如,如果将清 单 7 代码中添加的设置书籍标题的代码行注释掉,XMLBeans 仍然能正常读写缺少所需的 <title> 元素(因而无效)的文档。清单 8 显示了此代码更改,并给出了发送到服务 器进行添加请求的 XML 以及检索书籍时从服务器返回的 XML。对于检索响应,XML 文档包括 <title> 元素,但使用了 xsi:nil="true" 属性,这在模式中是不允许的 ,因此同样也无效。

清单 8. XMLBeans 客户机和无效文档

AddBookDocument abd = AddBookDocument.Factory.newInstance();    AddBookDocument.AddBook ab = abd.addNewAddBook();    ab.addAuthor("Cook, Glen");    ab.setIsbn(isbn);    ab.setType("scifi"); //      ab.setTitle(title);    System.out.println("Validate returned " + abd.validate());    stub.addBook(abd);    ...  <addBook xmlns="http://ws.sosnoski.com/library/wsdl">   <type>scifi</type>   <isbn>0445203498</isbn>   <author>Cook, Gle

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号