快速业务通道

Java Web服务 - Axis2中的JAXB和JAX-WS - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
t.println("Added ''" + title + ''\'''');        title = "This Should Not Work";        ab.setTitle(title);        stub.addBook(ab);        System.out.println("Added duplicate book - should not happen!");      } catch (AddDuplicateFault e) {        System.out.println("Failed adding ''" + title +          "'' with ISBN ''" + isbn + "'' - matches existing title ''" +          e.getFaultMessage().getBook().getTitle() + ''\'''');      }      // get all books of a type      GetBooksByType gbbt = new GetBooksByType();      gbbt.setType("scifi");      GetBooksByTypeResponse gbbtr = stub.getBooksByType(gbbt);      List<BookInformation> books = gbbtr.getGetBooksByTypeReturn();      System.out.println("Retrieved " + books.size() + " books of type ''scifi'':");      for (int i = 0; i < books.size(); i++) {        System.out.println(" ''" + books.get(i).getTitle() + ''\'''');      }    } }

Java Web服务 - Axis2中的JAXB和JAX-WS(3)

时间:2011-01-30 IBM Dennis Sosnoski

如果将 清单 2 与 “Java Web Services: Axis2 Data Binding” 中的客户机代码示例加以比较,会发现它非常类似于 JiBX 和 Axis Data Binding (ADB) 封装例子,主要区别在于 JAXB 封装器类使用 Java 5 类型列表(typed lists)而不是数组(JiBX 数据绑定支持的另一个替换选择,但是不受 ADB 支持)。

服务器端使用

库服务的服务器端代码包含两个类,其中一个实际实现库处理,另一个可适应 Axis2 所期望的服务接口。实际的实现代码对于不同的数据绑定几乎都是相同的,只需要根据生成的数据模型表示做一些微小的修改。清单 3 展示了更加有趣的服务接口类。和在客户端一样,封装的接口要求应用程序代码从收到的封装器对象中提取数据,并构造将要发送的封装器对象。

清单 3. JAXB 服务器代码

public class JaxbLibraryImpl extends JaxbLibrarySkeleton {    private final BookServer m_server;    public JaxbLibraryImpl() {      m_server = new BookServer();    }    public AddBookResponse addBook(AddBook req) throws AddDuplicateFault {      BookInformation prior = m_server.getBook(req.getIsbn());      if (prior == null) {        BookInformation book = new BookInformation();        book.getAuthor().addAll(req.getAuthor());        book.setIsbn(req.getIsbn());        book.setTitle(req.getTitle());        book.setType(req.getType());        AddBookResponse rsp = new AddBookResponse();        rsp.setAddBookReturn(m_server.addBook(book));        return rsp;      } else {        AddDuplicateFault e =           new AddDuplicateFault("Book already present with matching ISBN");        AddDuplicate ad = new AddDuplicate();        ad.setBook(prior);        e.setFaultMessage(ad);        throw e;      }    }

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号