一、SOAP消息操作
1.1、soap消息
@Test
public void testIn01() {//测试输入
try {
//1、创建消息工厂, 单例模式
MessageFactory factory = MessageFactory.newInstance();
//2、根据消息工厂创建SOAPmessage
SOAPMessage message = factory.createMessage();
//3、创建SOAPprot
SOAPPart part = message.getSOAPPart();
//4、获取信封Envelope
SOAPEnvelope envelope = part.getEnvelope();
//5、通过SOAPEnvolope 创建header, 以及body
SOAPBody body = envelope.getBody();
//6、根据QName创建相应的节点,(QName 就是一个带有命名空间的节点。)
} catch (SOAPException e) {
e.printStackTrace();
}
}
1.3.2、根据QName创建相应的节点,(QName 就是一个带有命名空间的节点。)
1.3.2.1、在服务创建是使用过QName
package com.chb.service;
import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
public class TestClient {
public static void main(String[] args) throws MalformedURLException {
//根据提供URL, 访问指定接口
URL url = new URL("http://localhost:9999/ns?wsdl");
//QName qName = new QName(namespaceURI, localPart)
//targetNamespace="http://service.chb.com/" name="MyServiceImplService">
//根据wsdl获取namespaceURI, 以及localport
QName qName = new QName("http://service.chb.com/", "MyServiceImplService");
//创建服务
Service service = Service.create(url, qName);
//通过service来创建接口
IMyService iMyService = service.getPort(IMyService.class);
System.out.println(iMyService.add(12, 34));
}
}
QName qName = new QName("http://service.chb.com/", "MyServiceImplService");
实际创建一个命名空间
关注
打赏