public class MessageHandler implements SOAPHandler<SOAPMessageContext> {
public boolean handleMessage(SOAPMessageContext messageContext) {
SOAPMessage msg = messageContext.getMessage();
Boolean outbound = (Boolean) messageContext.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
if(outbound) {
System.out.println("SOAP message departing…");
System.out.println("************** "+messageContext.get(MessageContext.HTTP_RESPONSE_CODE));
MimeHeaders mh = msg.getMimeHeaders();
mh.setHeader("customer-header", "customer-header");
Iterator itr3 = mh.getAllHeaders();
while(itr3.hasNext()) {
MimeHeader obj = (MimeHeader) itr3.next();
System.out.println("hhhhhhhhhhhhhhhhh "+obj.getName());
System.out.println("hhhhhhhhhhhhhhhhh "+obj.getValue());
}
これは、SOAP 応答にカスタム ヘッダーを追加しようとしている SOAP メッセージ ハンドラーの handleMessage メソッドのコード スニペットです。MimeHeader オブジェクトに追加することはできますが、Web サービスを呼び出すと、応答にそれが含まれていません。
私が気付いたもう 1 つのことは、MimeHeader のヘッダーが、SOAP 応答で取得しているヘッダーとまったく一致しないことです。それらはリクエストヘッダーとも一致しません。SOAP UI を使用して SOAP サービスを呼び出し、ヘッダーを表示しています。
ここで私が間違っていることを理解するのを手伝ってください。