小弟目前在做一个网关,遇到一个问题,请高人指点!!
我填写的SOAP头为这样
SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement(
"http://www.netcom.com/spec/2006/01/01/netcom-parlayx-wssecurity.xsd",
"NetcomSecurityHeader");
SOAPElement element = soapHeaderElement.addChildElement("SPToken");
element.addChildElement("SPID").addTextNode("1040000003");
element.addChildElement("password").addTextNode("12345678");
soapHeaderElement.addChildElement("ServiceID").addTextNode("90120111121040000000008");
soapHeaderElement.addChildElement("TransactionID").addTextNode("02010511302300000040");
soapHeaderElement.addChildElement("OA").addTextNode("00863518277990");
soapHeaderElement.addChildElement("FA").addTextNode("00863518277990");
我想在发包后再加一个HEADER
SOAPHeaderElement rootSoapElement = new SOAPHeaderElement(
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd",
"Security");
发包后的格式为:
<soapenv:Header>
<ns1:Security soapenv:mustUnderstand="0" xmlns:ns1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<ns2:NetcomSecurityHeader soapenv:mustUnderstand="0" xmlns:ns2="http://www.netcom.com/spec/2006/01/01/netcom-parlayx-wssecurity.xsd">
<ns2:SPToken>
<ns2:SPID>2030006782</ns2:SPID>
<ns2:password>12345678</ns2:password>
</ns2:SPToken>
<ns2:ServiceID>90120111122030000037605</ns2:ServiceID>
<ns2:OA>008645189635660</ns2:OA>
<ns2:FA>008645189635660</ns2:FA>
</ns2:NetcomSecurityHeader>
</ns1:Security>
</soapenv:Header>
有做网关方面的高手请教教小弟,我的QQ是350528980,EMAIL是[email protected]
我填写的SOAP头为这样
SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement(
"http://www.netcom.com/spec/2006/01/01/netcom-parlayx-wssecurity.xsd",
"NetcomSecurityHeader");
SOAPElement element = soapHeaderElement.addChildElement("SPToken");
element.addChildElement("SPID").addTextNode("1040000003");
element.addChildElement("password").addTextNode("12345678");
soapHeaderElement.addChildElement("ServiceID").addTextNode("90120111121040000000008");
soapHeaderElement.addChildElement("TransactionID").addTextNode("02010511302300000040");
soapHeaderElement.addChildElement("OA").addTextNode("00863518277990");
soapHeaderElement.addChildElement("FA").addTextNode("00863518277990");
我想在发包后再加一个HEADER
SOAPHeaderElement rootSoapElement = new SOAPHeaderElement(
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd",
"Security");
发包后的格式为:
<soapenv:Header>
<ns1:Security soapenv:mustUnderstand="0" xmlns:ns1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<ns2:NetcomSecurityHeader soapenv:mustUnderstand="0" xmlns:ns2="http://www.netcom.com/spec/2006/01/01/netcom-parlayx-wssecurity.xsd">
<ns2:SPToken>
<ns2:SPID>2030006782</ns2:SPID>
<ns2:password>12345678</ns2:password>
</ns2:SPToken>
<ns2:ServiceID>90120111122030000037605</ns2:ServiceID>
<ns2:OA>008645189635660</ns2:OA>
<ns2:FA>008645189635660</ns2:FA>
</ns2:NetcomSecurityHeader>
</ns1:Security>
</soapenv:Header>
有做网关方面的高手请教教小弟,我的QQ是350528980,EMAIL是[email protected]
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd",
"Security"); 写在最前面,可是我怎么加也加不到最外面。
PrefixedQName securiyQN = new PrefixedQName("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd",
"Security","ns1");
PrefixedQName NSHeaderQN = new PrefixedQName("http://www.netcom.com/spec/2006/01/01/netcom-parlayx-wssecurity.xsd",
"NetcomSecurityHeader","ns2");
SOAPHeaderElement rootHeaderElement = new SOAPHeaderElement(securiyQN);
SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement(NSHeaderQN);
rootHeaderElement.addChildElement(soapHeaderElement);
SOAPElement element = soapHeaderElement.addChildElement("SPToken");
element.addChildElement("SPID").addTextNode("1040000003");
element.addChildElement("password").addTextNode("12345678");
soapHeaderElement.addChildElement("ServiceID").addTextNode("90120111121040000000008");
soapHeaderElement.addChildElement("TransactionID").addTextNode("02010511302300000040");
soapHeaderElement.addChildElement("OA").addTextNode("00863518277990");
soapHeaderElement.addChildElement("FA").addTextNode("00863518277990");
还不对啊,我抓的包是这!
<soapenv:Header>
<ns2:NetcomSecurityHeader soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xmlns:ns2="http://www.netcom.com/spec/2006/01/01/netcom-parlayx-wssecurity.xsd">
<ns2:SPToken>
<ns2:SPID>1040000003</ns2:SPID>
<ns2:password>12345678</ns2:password>
</ns2:SPToken>
<ns2:ServiceID>90120111121040000000008</ns2:ServiceID>
<ns2:TransactionID>02010511302300000040</ns2:TransactionID>
<ns2:OA>00863518277990</ns2:OA>
<ns2:FA>00863518277990</ns2:FA>
</ns2:NetcomSecurityHeader>
</soapenv:Header>
PrefixedQName securiyQN = new PrefixedQName("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd",
"Security","ns1");
PrefixedQName NSHeaderQN = new PrefixedQName("http://www.netcom.com/spec/2006/01/01/netcom-parlayx-wssecurity.xsd",
"NetcomSecurityHeader","ns2");
SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement(securiyQN).addChildElement(NSHeaderQN);
SOAPElement element = soapHeaderElement.addChildElement("SPToken");
element.addChildElement("SPID").addTextNode("1040000003");
element.addChildElement("password").addTextNode("12345678");
soapHeaderElement.addChildElement("ServiceID").addTextNode("90120111121040000000008");
soapHeaderElement.addChildElement("TransactionID").addTextNode("02010511302300000040");
soapHeaderElement.addChildElement("OA").addTextNode("00863518277990");
soapHeaderElement.addChildElement("FA").addTextNode("00863518277990");
这再不行,我就没办法了。我这里没有编译环境,调试不了。
这句话语法就错误吧!
addChildElement(NSHeaderQN);返回的是SOAPElement