快速业务通道

在WEBLOGIC SERVER 10中使用JAX-WS和JAXB - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
后便可在接下来出现的页面中输入测试请求XML。下面是一个示例请求XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <dataStaging xmlns="http://services.irad.acmeworld.com/datastaging"> <inputURIs> <inputURI> <uri>http://www.altova.com</uri> </inputURI> <inputURI> <uri>http://www.amazon.com</uri> </inputURI> </inputURIs> </dataStaging>

WebLogic Test Client相当优秀,但是它实际上并不能测试在客户端上使用JAXB和JAX-WS。最后一步将实现这一任务。

使用JAX-WS Web服务客户端进行测试

最后,我们将使用JAX-WS Web服务客户端调用DataStagingService Web服务。最后一部分的代码要比JAX-WS服务端点的代码稍微复杂一些,因此它需要使用JAXB API。

try { DataStagingService service = new DataStagingService( new URL("http://localhost:7031/datastaging/DataStagingService?WSDL"), new QName("http://services.irad.acmeworld.com/datastaging", _properties.getProperty("datastaging.service.portName")) ); Dispatch sourceDispatch = service.createDispatch( new QName("http://services.irad.acmeworld.com/datastaging", "DataStagingService"), Source.class, Service.Mode.PAYLOAD ); InputStream inputstream = Thread.currentThread().getContextClassLoader(). getResourceAsStream("SampleDataStagingRequestDocument.xml"); Source responseSource = sourceDispatch.invoke(new StreamSource(inputstream)); javax.xml.transform.TransformerFactory factory = javax.xml.transform.TransformerFactory.newInstance(); javax.xml.transform.Transformer transformer = factory.newTransformer(); transformer.setOutputProperty(javax.xml.transform.OutputKeys.OMIT_XML_DECLARATION, "yes"); transformer.setOutputProperty(javax.xml.transform.OutputKeys.METHOD, "xml"); javax.xml.transform.stream.StreamResult streamResult = new javax.xml.transform.stream.StreamResult(); streamResult.setOutputStream(new java.io.ByteArrayOutputStream()); transformer.transform(responseSource, streamResult); System.out.println((new StringBuffer()).append("response="). append(streamResult.getOutputStream()).toString()); } catch(Throwable throwable) { throwable.printStackTrace(); System.out.println((new StringBuffer()).append("Unexpected exception: "). append(throwable.getMessage()).toString()); }

在WEBLOGIC SERVER 10中使用JAX-WS和JAXB(8)

时间:2011-01-27

其中大多数代码专门用于执行XSL转换,并且使用了JDK中的JAXP API类。首先,创建一个DataStagingService服务桩(stub)。该服务桩将接收一个URL对象(指向服务端点的WSDL)和一些与XML相关的内容,用于建立要调用的服务。后者将在检索WSDL之后使用。

注意,DataStagingService服务桩和相关类是由BEA clientgen Ant任务生成的。我并没展示这些代码,不过该Ant任务也拥有一个type="JAXWS"和一个<binding>子元素。

摘录代码的其余部分包括:

创建Dispatch对象,该对象用于调用Web服务操作。Dispatch对象在功能上等同于JAX-RPC中的Call对象(与DII编程模型一起使用)。

通过XML文档创建有效负载。这违背了“为各个元

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