【发布时间】:2013-02-13 11:47:13
【问题描述】:
<soapenv:Envelope>
<soapenv:Header>
<cor:india>test</cor:india>
</soapenv:Header>
<soapenv:Body>
.
.
</soapenv:Body>
</soapenv:Envelope>
OMFactory omFactory =OMAbstractFactory.getOMFactory();
OMNamespace omNamespace = omFactory.createOMNamespace("http://example.com/...", "cor");
OMElement header = omFactory.createOMElement("india", omNamespace);
header.setText("test");
stub._getServiceClient().addHeader(header);
我想将自定义标头添加到使用轴 2 和壁垒的肥皂请求中。 但下面是我得到的例外
Caused by: org.apache.rampart.RampartException: Error in extracting message properties
at org.apache.rampart.RampartMessageData.<init>(RampartMessageData.java:379)
at org.apache.rampart.MessageBuilder.build(MessageBuilder.java:61)
at org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:65)
... 10 more
Caused by: org.apache.ws.security.WSSecurityException: Error in converting SOAP Envelope to Document; nested exception is:
java.lang.ClassCastException: org.apache.axiom.om.impl.llom.OMElementImpl cannot be cast to org.apache.axiom.soap.SOAPHeaderBlock
at org.apache.rampart.util.Axis2Util.getDocumentFromSOAPEnvelope(Axis2Util.java:191)
at org.apache.rampart.RampartMessageData.<init>(RampartMessageData.java:270)
... 12 more
Caused by: java.lang.ClassCastException: org.apache.axiom.om.impl.llom.OMElementImpl cannot be cast to org.apache.axiom.soap.SOAPHeaderBlock
at org.apache.rampart.util.Axis2Util.getDocumentFromSOAPEnvelope(Axis2Util.java:141)
... 13 more
【问题讨论】:
-
我遇到了同样的错误。但我没有发现错误请给我示例应用程序
-
@sureshmanda,您是否正在通过轴 2 在soap 请求中添加额外的标头信息,例如:“
test ”? -
是的,但我不喜欢这种。
-
您必须添加名称空间并将内容添加到答案部分中显示的标题中。这是它的代码。 OMNamespace ns = factory.createOMNamespace("google.com", "cor"); hdr.addHeaderBlock("印度", ns).setText("这里的值");
标签: java web-services axis2 axis rampart