java 解析webservice 中的soapheader

时间:2023-03-09 13:24:37
java 解析webservice 中的soapheader
 //从MessageContet中获取头域中的值
public HeaderBean getBeanFromRequest(org.apache.axis2.context.MessageContext msgContext)
{
HeaderBean headerBean = new HeaderBean();
org.apache.axiom.soap.SOAPHeader headers = (org.apache.axiom.soap.SOAPHeader)msgContext.getEnvelope().getHeader();
Iterator iterator = headers.getChildElements();
try
{
while(iterator.hasNext())
{
OMElement omheader = (OMElement) iterator.next();
if (omheader == null)
{
break;
}
else if ("MessageID".equals(omheader.getLocalName()))
{
String MessageID = omheader.getText().trim();
headerBean.setMessageID(MessageID);
/*System.out.println((new StringBuilder())
.append("notifyParticipantState : MessageID --> ")
.append(MessageID).toString());*/
}
else if ("MEName".equals(omheader.getLocalName()))
{
String MEName = omheader.getText().trim();
headerBean.setmEName(MEName);
/*System.out.println((new StringBuilder())
.append("notifyParticipantState : MEName --> ")
.append(MEName).toString());*/
}
else if ("Authentication".equals(omheader.getLocalName()))
{
String Authentication = omheader.getText().trim();
Iterator authIterator = omheader.getChildElements();
System.out.println((new StringBuilder())
.append("notifyParticipantState : Authentication --> ")
.append(Authentication).toString());
while(authIterator.hasNext())
{
OMElement omlement = (OMElement) authIterator.next();
if (omlement == null)
{
break;
}
else if ("Username".equals(omlement.getLocalName()))
{
String userName = omlement.getText().trim();
headerBean.setUsername(userName);
/*System.out.println((new StringBuilder())
.append("notifyParticipantState : Username --> ")
.append(Username).toString());*/
}
else if ("Password".equals(omlement.getLocalName()))
{
String password = omlement.getText().trim();
headerBean.setPassword(password);
/*System.out.println((new StringBuilder())
.append("notifyParticipantState : Password --> ")
.append(Password).toString());*/
}
}
}
}
}
catch(Exception ex)
{
ex.printStackTrace();
} return headerBean;
}

header头消息如下:

 <soapenv:Header xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<mgr:MessageID xmlns:mgr="http://mgr.soap.boss.bmp.ecs.huawei.com.MEDIAX">123</mgr:MessageID>
<mgr:MEName xmlns:mgr="http://mgr.soap.boss.bmp.ecs.huawei.com.MEDIAX">123</mgr:MEName>
<mgr:Authentication xmlns:mgr="http://mgr.soap.boss.bmp.ecs.huawei.com.MEDIAX">
<mgr:Username>test</mgr:Username>
<mgr:Password>test</mgr:Password>
</mgr:Authentication>
</soapenv:Header>