You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by bpanyarachun <bp...@gmail.com> on 2011/11/02 21:46:22 UTC

[Axis2] upgrading 1.4.1 to 1.6.1. Problems with org.apache.axis2.dispatchers.AddressingBasedDispatcher.java

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.

Re: [Axis2] upgrading 1.4.1 to 1.6.1. Problems with org.apache.axis2.dispatchers.AddressingBasedDispatcher.java

Posted by Deepal jayasinghe <de...@gmail.com>.
A possible reason would be that you are not sending the SOAP action when
you invoke the service. Could you please check the client code ?

Deepal
> Anybody have any feedback on this?
>
> On Wed, Nov 2, 2011 at 1:46 PM, bpanyarachun <bpanyarachun@gmail.com
> <ma...@gmail.com>> wrote:
>
>     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.
>
>
>
>
>
>
>


Re: [Axis2] upgrading 1.4.1 to 1.6.1. Problems with org.apache.axis2.dispatchers.AddressingBasedDispatcher.java

Posted by bpanyarachun <bp...@gmail.com>.
Anybody have any feedback on this?

On Wed, Nov 2, 2011 at 1:46 PM, bpanyarachun <bp...@gmail.com> wrote:

> 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.
>
>
>
>
>