You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ws.apache.org by "Colm O hEigeartaigh (Closed) (JIRA)" <ji...@apache.org> on 2011/10/03 11:04:42 UTC
[jira] [Closed] (WSS-12) WSDoAllReceiver crashes due to missing
method in SOAPHeaderElement
[ https://issues.apache.org/jira/browse/WSS-12?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Colm O hEigeartaigh closed WSS-12.
----------------------------------
> WSDoAllReceiver crashes due to missing method in SOAPHeaderElement
> ------------------------------------------------------------------
>
> Key: WSS-12
> URL: https://issues.apache.org/jira/browse/WSS-12
> Project: WSS4J
> Issue Type: Bug
> Environment: Windows XP SP2, SUN JDK 1.5.0, Axis 1.2.1, WSS4J 1.0.0
> Reporter: Guy Rixon
> Assignee: Davanum Srinivas
> Priority: Critical
>
> I am using WSDoAllReceiver to process message signature. It consistently crashes when reading the message with this error:
> javax.xml.soap.SOAPHeaderElement.getLocalName()Ljava/lang/String;
> java.lang.NoSuchMethodError: javax.xml.soap.SOAPHeaderElement.getLocalName()Ljava/lang/String;
> at org.apache.ws.axis.security.WSDoAllReceiver.invoke(WSDoAllReceiver.java:270)
> at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
> at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
> at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
> at org.apache.axis.client.AxisClient.invoke(AxisClient.java:121)
> at org.apache.axis.client.Call.invokeEngine(Call.java:2765)
> at org.apache.axis.client.Call.invoke(Call.java:2748)
> at org.apache.axis.client.Call.invoke(Call.java:2424)
> at org.apache.axis.client.Call.invoke(Call.java:2347)
> at org.apache.axis.client.Call.invoke(Call.java:1804)
> at org.astrogrid.security.sample.SamplePortSoapBindingStub.whoAmI(SamplePortSoapBindingStub.java:108)
> at org.astrogrid.security.EndToEndTest.testAll(EndToEndTest.java:46)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> The method in question is specified by org.w3c.dom.Element; it looks like the inheritence tree has gone wrong in Axis 1.2.1. The inheritence of interfaces between javax.xml.soap.SOAPHeaderInterface, javax.xml.soap.SOAPElement and org.w3c.dom.Node may be the problem; it looks to me like there may be a loop.
> This problem can be worked around in WSS4J by changing WSDoAllReceiver. Around line 269, change this
> SOAPHeaderElement headerElement = null;
> while (headers.hasNext()) {
> SOAPHeaderElement hE = (SOAPHeaderElement)headers.next();
> if (hE.getLocalName().equals(WSConstants.WSSE_LN)
> && hE.getNamespaceURI().equals(WSConstants.WSSE_NS)) {
> headerElement = hE;
> break;
> }
> }
> ((org.apache.axis.message.SOAPHeaderElement) headerElement)
> .setProcessed(true);
> to this
> SOAPHeaderElement headerElement = null;
> while (headers.hasNext()) {
> org.apache.axis.message.SOAPHeaderElement hE = (org.apache.axis.message.SOAPHeaderElement) headers.next();
> if (hE.getLocalName().equals(WSConstants.WSSE_LN)
> && hE.getNamespaceURI().equals(WSConstants.WSSE_NS)) {
> headerElement = hE;
> break;
> }
> }
> ((org.apache.axis.message.SOAPHeaderElement) headerElement)
> .setProcessed(true);
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ws.apache.org
For additional commands, e-mail: dev-help@ws.apache.org