java soap webservice(含有SoapHeader)

1 篇文章 0 订阅

调用如图,先通过CredentialSoapHeader,然后调用soapBody,进行数据验证的

----ps: 西安西点软件有限责任公司 这TM SB,还得老子调用好久,还调子蛮高的...


奉上代码:

List<String> provinces = new ArrayList<String>();
		String str = "";
		SOAPConnectionFactory s;
		//构建head
		Element[] header = new Element[1];
		header[0] = new Element().createElement(targetNameSpace, "CredentialSoapHeader ");

		Element userName = new Element().createElement(targetNameSpace,
				"strAccount");
		userName.addChild(Node.TEXT, "asdfas");
		header[0].addChild(Node.ELEMENT, userName);

		Element pass = new Element().createElement(targetNameSpace, "strKey");
		pass.addChild(Node.TEXT, "asdfasdfa");
		header[0].addChild(Node.ELEMENT, pass);
		//构建body
		SoapObject soapObject = new SoapObject(targetNameSpace,
				getSupportProvince);
		soapObject.addProperty("PayInfo", ""+payinfo);//
		// 调用的方法参数与参数值(根据具体需要可选可不选)
		// soapObject.addProperty("strKey",
		// "asas");// 调用的方法参数与参数值(根据具体需要可选可不选)
		SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
				SoapEnvelope.VER11);
		envelope.dotNet = true;
		envelope.headerOut = header;
		envelope.bodyOut=soapObject;
		HttpTransportSE httpTranstation = new HttpTransportSE(WSDL);
		httpTranstation.call(targetNameSpace + getSupportProvince, envelope);
		Object ss = envelope.getResponse();
		System.out.println("WebServiceHelper.getProvince()" + ss);
		_logger.info(ss);



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 中,可以使用 JAX-WS API 来解析 SOAP 消息中的 SOAP Header。下面是一个简单的示例代码: ```java // 创建一个 JAX-WS 客户端 MyWebService service = new MyWebService(); MyWebServicePortType port = service.getMyWebServicePort(); // 调用服务方法,并获取响应消息 MyResponse response = port.myMethod(request); // 获取响应消息中的 SOAP Header SOAPHeader header = ((BindingProvider)port).getResponseContext().get(MessageContext.HTTP_RESPONSE_HEADERS)).getSOAPHeader(); // 遍历 SOAP Header 中的所有元素 Iterator<?> headerElements = header.extractAllHeaderElements(); while (headerElements.hasNext()) { SOAPHeaderElement element = (SOAPHeaderElement)headerElements.next(); // 处理 SOAP Header 中的元素 } ``` 在上述代码中,`MyWebService` 是一个 JAX-WS 客户端,`MyWebServicePortType` 是客户端的端口类型。`myMethod` 是客户端调用的服务方法,`request` 是传递给服务方法的请求参数。`MyResponse` 是服务端返回的响应消息类型。 在获取响应消息后,使用 `getResponseContext()` 方法获取响应消息的上下文,然后使用 `get(MessageContext.HTTP_RESPONSE_HEADERS)` 方法获取响应消息中的 SOAP Header。最后,使用 `extractAllHeaderElements()` 方法遍历 SOAP Header 中的所有元素。 需要注意的是,如果 SOAP 消息中没有 SOAP Header,或者 SOAP Header 中没有任何元素,那么上述代码中的 `header` 变量将为 null。因此,在访问 `header` 变量之前,需要进行 null 判断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值