webservice 如何获取包头里的数据。

[code="java"]package axis2test;

import java.util.Iterator;

import javax.xml.namespace.QName;

import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axiom.soap.SOAPHeader;
import org.apache.axiom.soap.impl.llom.soap11.SOAP11HeaderBlockImpl;
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.engine.Handler;
import org.apache.axis2.handlers.AbstractHandler;
public class HandlerTest extends AbstractHandler implements Handler {

public InvocationResponse invoke(MessageContext arg0) throws AxisFault {
    SOAPEnvelope envelope = arg0.getEnvelope();
    SOAPHeader header = envelope.getHeader();
    return InvocationResponse.CONTINUE;
}

}

[/code]

我已经获取到了 header .header 信息是

[code="java"]


cp:usernamexy/cp:username
cp:passwd123456/cp:passwd
/cp:MessageHeader
/soapenv:Header

[/code]

请问如何获取 里面的username和passwd呢。试了header的好多方法都不行。

前段时间遇到过这样的问题,主要是调用.net webservice如何去获取header信息。
你已经获得了header,但是如何获取具体的某个值呢。在api上提供了 一些方法,但是通过测试,这些方法获取不到。最后使出杀手锏。将header转为OMElement,也就是种对象数组的形式,然后遍历,如果
[code="java"]
String username = "";
for(OMElement om:header.getChildNodes){ //这里可能函数有些不对,但是方法正确
if(om.getName() == "username"){
username = om.getValue();

}}
[/code]