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 プロジェクトを作成し、wsdl ファイル、aar ファイル (Tomcat 7 を使用してデプロイするため)、および Java コード (java2wsdl) から jar ファイルを生成しました。要求が送信されると、コードは、ヘッダー要素の下に提供された資格情報でユーザーを承認する必要があります。ただし、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 およびその他のオブジェクトが axiom からインポートされ、print ステートメントは実行されません。問題は、ヘッダーと本文を読み取ることができるように、このリクエストをどのように解析するかです。
あいまいな点がありましたら申し訳ありません。Java Web サービスはまだ初心者です。