-1

SOAPヘッダー要素でユーザー名とパスワードを取得し、それらをさらに使用/処理するために使用する必要がある1つのJAX-WS Webサービスを実装しています。ユーザー名/パスワードを取得すると、null になります。助けてください。

  if (Boolean.FALSE.equals(context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY))) {      
             try {
                 SOAPMessage sm = context.getMessage();
                 //SOAPEnvelope envelope = context.getMessage().getSOAPPart().getEnvelope();
                 SOAPEnvelope envelope = sm.getSOAPPart().getEnvelope();
                 SOAPHeader sh = envelope.getHeader();

                System.out.println("Message: "+envelope);
                System.out.println("Envelope: "+envelope);
                 System.out.println("Header: "+sh.toString());
                 Iterator it = sh.examineAllHeaderElements();
                 while(it.hasNext()){
                     System.out.println(it.next());
                 }

           String username;
            username = sh.getAttribute("Username");
           // username  = sh.getAttributeValue("Username");
            //String password =  sh.getAttribute("Password");
                 System.out.println("uid:"+username);
                 //System.out.println("pass: "+password);
                context.put("Username", username);
                //context.put("Passsword", password);
                // default scope is HANDLER (i.e., not readable by SEI
                // implementation)
                context.setScope("Username", MessageContext.Scope.APPLICATION);
4

1 に答える 1

2

これを試して:

public boolean handleMessage(SOAPMessageContext context) { 
    try { 
        SOAPMessage message = context.getMessage(); 
        SOAPHeader header = message.getSOAPHeader();             
        if (header != null) { 
            Iterator i = header.getChildElements();
            //Navigate through header elements to get the username and password
        } 
    } catch (Exception e) { 
        //Handle exception 
    } 
    return true; 
}

参照:

于 2013-02-03T13:50:27.607 に答える