`
voll588
  • 浏览: 5105 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

jax-ws 客户端动态访问小结

 
阅读更多

最近研究java6自带的webservice包(jax-ws),一些代码分享下。

 

public static void procWeb() throws Exception{
		QName serviceName = new QName("http://WebXml.com.cn/", "qqOnlineWebService");
		
		//QName for Port As defined in wsdl.
		QName portName = new QName("http://WebXml.com.cn/", "qqOnlineWebServiceSoap");
		
//		//Endpoint Address
		String  endpointAddress = "http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl";
		
		//Create a dynamic Service instance
		Service service = Service.create(serviceName);
		
		service.addPort(portName, SOAPBinding.SOAP11HTTP_BINDING, endpointAddress);  
		
		//Create a dispatch instance
		Dispatch<SOAPMessage> dispatch = 
		   service.createDispatch(portName, SOAPMessage.class, Service.Mode.MESSAGE);
		
		// Use Dispatch as BindingProvider
		BindingProvider bp = (BindingProvider) dispatch;
		
		// Optionally Configure RequestContext to send SOAPAction HTTP Header
		Map<String, Object> rc = bp.getRequestContext();
		rc.put(BindingProvider.SOAPACTION_USE_PROPERTY, Boolean.TRUE);
		rc.put(BindingProvider.SOAPACTION_URI_PROPERTY, "http://WebXml.com.cn/qqCheckOnline");
		
		// Obtain a preconfigured SAAJ MessageFactory
		MessageFactory factory = ((SOAPBinding)bp.getBinding()).getMessageFactory();

		// Create SOAPMessage Request
		SOAPMessage request = factory.createMessage();

		// Request Body
		SOAPBody body = request.getSOAPBody();

		// Compose the soap:Body payload
		QName payloadName =
		   new QName("http://WebXml.com.cn/", "qqCheckOnline");

		SOAPBodyElement payload = body.addBodyElement(payloadName); 

		SOAPElement message = payload.addChildElement("qqCode");

		message.addTextNode("88888");

		// Invoke the endpoint synchronously
		SOAPMessage reply = null;

		try {
			//Invoke Endpoint Operation and read response
			reply = dispatch.invoke(request);
		} catch (WebServiceException wse){
			wse.printStackTrace();
		}

		// process the reply
		SOAPBody bodyRes = reply.getSOAPBody();
		
		SOAPBodyElement nextSoapBodyElement = (SOAPBodyElement)bodyRes.getChildElements().next();              
        SOAPElement soapElement = (SOAPElement)nextSoapBodyElement.getChildElements().next();
		String strmsg = soapElement.getValue();

		System.out.println(strmsg);

	}
 
分享到:
评论
1 楼 LinApex 2014-09-22  
使用不了哦,朋友/// 能不能详细说明一下

相关推荐

    Web Service学习小结——基于JDK自带JAX-WS实现的web service

    - **服务代理生成**:通过WSDL文件,JAX-WS的wsimport工具可以生成客户端所需的Java类,这些类提供了调用Web服务的方法。 - **服务调用**:使用生成的客户端代码,可以通过服务代理类调用远程Web服务的方法。 3. ...

    (六)Java Ee平台上实现Web服务及多种客户端实例-小结.rar

    本资源的标题"Java EE平台上实现Web服务及多种客户端实例-小结"表明它聚焦于总结如何在Java EE环境中创建和消费Web服务,并提供了不同客户端的应用示例。 Web服务是一种通过HTTP协议传输数据的方式,它允许不同...

    Spring中文帮助文档

    14.5.2. 小结 14.6. 文档视图(PDF/Excel) 14.6.1. 简介 14.6.2. 配置和安装 14.7. JasperReports 14.7.1. 依赖的资源 14.7.2. 配置 14.7.3. 构造ModelAndView 14.7.4. 使用子报表 14.7.5. 配置Exporter的...

    Spring API

    14.5.2. 小结 14.6. 文档视图(PDF/Excel) 14.6.1. 简介 14.6.2. 配置和安装 14.7. JasperReports 14.7.1. 依赖的资源 14.7.2. 配置 14.7.3. 构造ModelAndView 14.7.4. 使用子报表 14.7.5. 配置Exporter的...

    Documentum 6.5 Architecture Overview

    #### 小结 Documentum 6.5 的架构设计充分体现了 SOA 的思想,通过提供一系列标准化的服务接口和支持工具,使得开发者可以轻松地构建、管理和维护复杂的企业内容管理系统。这种架构不仅提高了系统的可扩展性和灵活...

    第十五章 开发XFire Web Service应用22.pdf

    #### 15.10 小结 通过本章的学习,开发者不仅掌握了使用XFire和MyEclipse开发Web服务的基础知识,还深入了解了Web服务的原理、开发流程和技术要点。无论是创建简单的“Hello World”服务,还是构建复杂的天气预报...

Global site tag (gtag.js) - Google Analytics