Hi all,

My current software uses axis2 1.4.1 and I am upgrading it to 1.6.1.

My issue is that while using 1.6.1, whenever I use the axis2 validation or
deploy/undeploy, I receive the error below with the action being
"urn:anonOutInOpResponse".

 ERROR: The [action] cannot be processed at the receiver.
org.apache.axis2.AxisFault: The [action] cannot be processed at the
receiver.
    at
org.apache.axis2.addressing.AddressingFaultsHelper.triggerAddressingFault(AddressingFaultsHelper.java:373)
    at
org.apache.axis2.addressing.AddressingFaultsHelper.triggerActionNotSupportedFault(AddressingFaultsHelper.java:336)
    at
org.apache.axis2.dispatchers.AddressingBasedDispatcher.checkAction(AddressingBasedDispatcher.java:156)
    at
org.apache.axis2.dispatchers.AddressingBasedDispatcher.invoke(AddressingBasedDispatcher.java:140)
    at org.apache.axis2.engine.Phase.invokeHandler(Phase.java:340)
    at org.apache.axis2.engine.Phase.invoke(Phase.java:313)
    at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:262)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:168)
    at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:182)
    at
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:147)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
    at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
    at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
    at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269)
    at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
    at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919)
    at java.lang.Thread.run(Thread.java:736)

What my concern here is that I noticed in
org.apache.axis2.dispatchers.AddressingBasedDispatcher.java the constant
"IS_ADDR_INFO_ALREADY_PROCESSED" is somehow being set to TRUE when being
checked at line ~121. I have not been able to figure out where this is
happening. I can see that it initially starts as FALSE is
org.apache.axis2.handlers.addressing.AddressingInHandler.java at line 79.

While using axis2 1.4.1, "IS_ADDR_INFO_ALREADY_PROCESSED" always stays
FALSE and I do not get this error.

One solution that I did was to change on line ~125 from

if (JavaUtils.isTrue(msgctx.getProperty(ADDR_VALIDATE_ACTION), true))

to

if (JavaUtils.isTrue(msgctx.getProperty(ADDR_VALIDATE_ACTION), false))

which will not do checkAction(msgctx) since it will default to FALSE.

Both installations are identical except for the axis2 versions. I'm not
sure why there is a change in behavior with axis2 1.6.1. I know I can solve
this issue also by disengaging the addressing module but I'd like to keep
use of addressing since I have been able to in 1.4.1. I'd like to know if
anyone has any idea about the different behavior that I am seeing and if
the solution I have done is acceptable in this situation. Thanks.

Reply via email to