这是我使用 SOAPUI 提交的 SOAP 请求
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:My namespace="My Package">
<soapenv:Header>
<Username>q</Username>
<Password>q</Password>
</soapenv:Header>
<soapenv:Body>
<Op:Op>
<Op:int>2134</Op:int>
</Op:Op>
</soapenv:Body>
</soapenv:Envelope>
现在我在 Eclipse 中创建了一个 maven 项目,并从 Java 代码 (java2wsdl) 生成了一个 wsdl 文件、aar 文件(用于使用 Tomcat 7 进行部署)和一个 jar 文件。提交请求时,代码必须使用 header 元素下提供的凭据授权用户。但是,我无法解析 SOAP 请求。当我尝试解析时,
SOAPFactory fac = OMAbstractFactory.getSOAP11Factory();
SOAPEnvelope envelope = fac.getDefaultEnvelope();
SOAPHeader header = envelope.getHeader();
SOAPBody body = envelope.getBody();
Iterator it = header.getChildElements();
Iterator bodyIt = body.getChildElements();
while (it.hasNext()) {
OMElement e = (OMElement) it.next();
System.out.println(e.getText().toString());
}
while (bodyIt.hasNext()) {
OMElement e = (OMElement) bodyIt.next();
System.out.println(e.getText().toString());
}
其中 SOAPFactory 和其他对象是从公理导入的,没有执行任何打印语句。所以问题是我如何解析这个请求,以便我能够读取标题和正文?
如果有任何含糊之处,我深表歉意;我还是 Java Web 服务的新手。