快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
tBook().getTitle() + ''\'''');      }      // get all books of a type      List<BookInformation> books = stub.getBooksByType("scifi");      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(7)

时间:2011-01-30 IBM Dennis Sosnoski

JAX-WS 客户端处理通常要求在运行时访问服务 WSDL,并且使用 WSDL 来初始化服务器链接。如果您已经获知目标服务的 WSDL 始终可以在运行时直接从服务器获得,并且该服务器将始终位于同一地址,那么您可以将 WSDL URL 提供给 WsImport,并让它将 URL 硬编码到生成的代码中。对于大多数严肃的工作,最好使用 WSDL 的本地副本,然后,如果目标服务地址不同于 WSDL 中的地址,那么在运行时重写该地址。附带的构建文件采用了这种方法,而 清单 6 中粗体所示的代码部分演示了如何在不修改 WSDL 的情况下在运行时修改服务地址。

服务器端 JAX-WS 使用

服务器端代码的 JAX-WS 版本如 清单 7 所示。实现类的 @WebService 注释(粗体显示)将实现代码与某个特定 Web 服务接口关联起来。实现类的这个注释允许您从生成的服务接口(清单 5)的相应注释中重写设置。在本例中,注释将设置服务和端口名,并给出 WSDL 服务定义的位置(显然 Axis2 希望该位置与类路径的根相关,或是一个绝对 URL)。

清单 7. JAX-WS 服务器代码

@javax.jws.WebService(endpointInterface="com.sosnoski.ws.library.jaxws.Library", portName="library", targetNamespace="http://ws.sosnoski.com/library/wsdl", wsdlLocation="com/sosnoski/ws/library/jaxws/library.wsdl", serviceName="JaxwsLibrary") public class JaxwsLibraryImpl implements Library {    private final BookServer m_server;    public JaxwsLibraryImpl() {      m_server = new BookServer();    }    public boolean addBook(String type, String isbn, List<String> author, String title)      throws AddDuplicateFault {      BookInformation prior = m_server.getBook(isbn);      if (prior == null) {        BookInformation book = new BookInformation();        book.getAuthor().addAll(author);        book.setIsbn(isbn);        book.setTitle(title);        book.setType(type);        return m_server.addBook(book);      } else {        AddDuplicate ad = new AddDuplicate();        ad.setBook(prior);        AddDuplicateFault e =           new AddDuplicateFault("Book already present with matching ISBN", ad);        throw e;      }    }    public BookInformation getBook(String isbn) {      return m_server.getBook(isbn);    }    public List<BookInformation> getBooksByType(String type) {      return m_server.getBooksByType(type);    }    public List<TypeInformation> getTypes() {      return m_server.getTypes();    } }

清单

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