java 调用webservice接口
MessageFactory messageFactory = MessageFactory.newInstance();
SOAPMessage soapMessage = messageFactory.createMessage();
SOAPPart soapPart = soapMessage.getSOAPPart();
// 创建SOAP Envelope
SOAPEnvelope soapEnvelope = soapPart.getEnvelope();
soapEnvelope.addNamespaceDeclaration("tns", "http://webService.eif.supcom.th.com/");
// 创建SOAP Body
SOAPBody soapBody = soapEnvelope.getBody();
// 创建SOAP元素,并设置参数
QName operationQName = new QName("http://webService.eif.supcom.th.com/", "acceptMessage", "tns");
SOAPElement operationElement = soapBody.addChildElement(operationQName);
String xml = "<Request>\n" +
"\t\t\t\t <MessageHeader>\n" +
"\t\t\t\t <Sender>HLWYY</Sender>\n" +
"\t\t\t\t <Receiver>HIS</Receiver>\n" +
"\t\t\t\t <SendTime>20230907093547</SendTime>\n" +
"\t\t\t\t <EventType>PCA_CREATE_ARCHIVE</EventType>\n" +
"\t\t\t\t <MsgId>b2fbaee1-8654-46a6-ab70-d87a8f422zf2</MsgId>\n" +
"\t\t\t\t </MessageHeader>\n" +
"\t\t\t\t <MessageBody>\n" +
"\t\t\t\t <MsgLog>\n" +
"\t\t\t\t <TerminalNo>HLWYY</TerminalNo>\n" +
"\t\t\t\t <UserId>HLWYY</UserId>\n" +
"\t\t\t\t <IpAddr>10.15.7.20</IpAddr>\n" +
"\t\t\t\t <MerchantNo>H000</MerchantNo>\n" +
"\t\t\t\t <MerchantSubNo>H0001</MerchantSubNo>\n" +
"\t\t\t\t <PlatformCode>09</PlatformCode>\n" +
"\t\t\t\t <RequestWay>3</RequestWay>\n" +
"\t\t\t\t </MsgLog>\n" +
"\t\t\t\t <PatientInfo>\n" +
"\t\t\t\t <Name>" + testUser.getName() + "</Name>\n" +
"\t\t\t\t <NamePhonetic>" + namePinYin + "</NamePhonetic>\n" +
"\t\t\t\t <Sex>" + sexCode + "</Sex>\n" +
"\t\t\t\t <DateOfBirth>" + birthDayStr + "</DateOfBirth>\n" +
"\t\t\t\t <IdNumber>" + testUser.getIdNumber() + "</IdNumber>\n" +
"\t\t\t\t <PhoneNumber>" + testUser.getTelNumber() + "</PhoneNumber>\n" +
"\t\t\t\t <InputWay />\n" +
"\t\t\t\t <InsuranceType />\n" +
"\t\t\t\t </PatientInfo>\n" +
"\t\t\t\t <CardInfo>\n" +
"\t\t\t\t <IdentityType>4</IdentityType>\n" +
"\t\t\t\t <IdentityNumber>" + testUser.getIdNumber() + "4" + "</IdentityNumber>\n" +
"\t\t\t\t <CardStartTime />\n" +
"\t\t\t\t <CardEndTime />\n" +
"\t\t\t\t <CardUUID>" + testUser.getIdNumber() + "4|4" + "</CardUUID>\n" +
"\t\t\t\t <OccupationCode>abc</OccupationCode>\n" +
"\t\t\t\t <RefundPassword />\n" +
"\t\t\t\t </CardInfo>\n" +
"\t\t\t\t </MessageBody>\n" +
"\t\t\t\t</Request>";
operationElement.addChildElement("arg0").setValue(xml);
// 发送SOAP消息
SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
SOAPConnection soapConnection = soapConnectionFactory.createConnection();
SOAPMessage soapResponse = soapConnection.call(soapMessage, url);
// 处理返回的SOAP响应
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
soapResponse.writeTo(outputStream);
String response = outputStream.toString();
System.out.println("Web服务调用结果: " + response);
soapConnection.close();
导入
import javax.xml.namespace.QName;
import javax.xml.soap.*;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;