Hi guys,
I also experienced this, I did not see you were discussing it here so I
wrote in the JIRA.
I tried to reopen the issue but I don't have sufficient rights, Nandana can
you reopen it please?
Regards,
Detelin
On Mon, Nov 24, 2008 at 8:46 AM, Mary Thompson <[EMAIL PROTECTED]> wrote:
> Nandana,
> I have been playing with this for a while. In the case where the service
> throws a fault there is no axisMessage in the msgCtx when we get to
> axis2/context/MessageContext. One can use the FLOW variable to figure out if
> it is an in or out message. The following patch works for me for both fault
> and non-fault cases, policy is attached at the operations.
>
> diff MessageContext.orig MessageContext.fixed
> 1603c1603,1608
> < String direction = axisMessage.getDirection();
> ---
> > String direction = null;
> > if ((FLOW == IN_FLOW) || (FLOW == IN_FAULT_FLOW)) {
> > direction = WSDLConstants.MESSAGE_LABEL_IN_VALUE;
> > } else if ((FLOW == OUT_FLOW) || (FLOW == OUT_FAULT_FLOW)){
> > direction = WSDLConstants.MESSAGE_LABEL_OUT_VALUE;
> > }
> 1605c1610
> < if (WSDLConstants.WSDL_MESSAGE_DIRECTION_IN
> ---
> > if (WSDLConstants.MESSAGE_LABEL_IN_VALUE
> 1614c1619
> < } else if (WSDLConstants.WSDL_MESSAGE_DIRECTION_OUT
> ---
> > } else if (WSDLConstants.MESSAGE_LABEL_OUT_VALUE
>
>
> I noticed that in normal OUT_FLOW execution goes through WSDoAllSender
> before going into RampartSender, but in the OUT_FAULT_FLOW case it just goes
> to RampartSender. I don't know if WSDoAllSender would have created the axis
> message.
>
> Mary Thompson
>
>
> Nandana Mihindukulasooriya wrote:
>
>> Mary,
>> Yes, I applied the patch [1] and resolved the issue and it is in the
>> trunk. It seems we need to include some null checks in to the problematic
>> operation.
>>
>> thanks,
>> nandana
>>
>> [1] -
>> http://issues.apache.org/jira/browse/AXIS2-4114?page=com.atlassian.jira.plugin.ext.subversion:subversion-commits-tabpanel
>>
>> On Mon, Nov 17, 2008 at 2:07 PM, Mary Thompson <[EMAIL PROTECTED]<mailto:
>> [EMAIL PROTECTED]>> wrote:
>>
>> Nandana,
>> I noticed that you resolved this jira as "fixed". Does this mean
>> that something like Dobri's patch to MessageContext has been
>> committed to axis trunk?
>>
>> The problem that I am having with no effective policy being found
>> for fault message replies seemed similar enough that I wanted to try
>> the fix if possible.
>>
>> I have my policy attached to operations. Successful replies find an
>> effective policy and work just fine. If my application throws an
>> axis fault due to wrong input from the client, no policy is found
>> and the message is returned with no SOAP header.
>>
>> Having no clue as to how to "build against the axis2 SNAPSHOT" I
>> downloaded the axis2-SNAPSHOT.jar of Nov 17, dumped it into the axis
>> lib directory and went for it. After getting the axiom SNAPSHOT jars
>> that were needed, I found that the successful case still worked, and
>> the fault case got into trouble at
>>
>> 2008-11-16 23:47:47,357 [ INFO]
>> axis:org.apache.rampart.handler.RampartSender entering rampartSender
>> invoke
>> 2008-11-16 23:47:47,357 [ INFO]
>> axis:org.apache.rampart.handler.RampartSender Rampart is engaged
>> 2008-11-16 23:47:47,358 [ INFO]
>> axis:org.apache.rampart.MessageBuilder Entering rampartMessageBuilder
>> 2008-11-16 23:47:47,359 [DEBUG]
>> axis:org.apache.rampart.RampartMessageData RMD: creating
>> RampartMessageData
>> 2008-11-16 23:47:47,427 [DEBUG]
>> axis:org.apache.rampart.RampartMessageData RMD: trying effective Policy
>>
>> 2008-11-16 23:47:47,429 [ERROR]
>>
>>
>> axis:org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/axis2].[AxisServlet]
>> Servlet.service() for servlet AxisServlet threw exception
>> java.lang.NullPointerException
>> at
>>
>>
>> org.apache.axis2.context.MessageContext.findBindingMessage(MessageContext.java:1603)
>> at
>>
>>
>> org.apache.axis2.context.MessageContext.getEffectivePolicy(MessageContext.java:1581)
>> at
>>
>> org.apache.rampart.RampartMessageData.<init>(RampartMessageData.java:251)
>> at
>> org.apache.rampart.MessageBuilder.build(MessageBuilder.java:61)
>> at
>> org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:66)
>> at org.apache.axis2.engine.Phase.invoke(Phase.java:318)
>> at
>> org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:248)
>> at
>> org.apache.axis2.engine.AxisEngine.sendFault(AxisEngine.java:504)
>> at
>>
>>
>> org.apache.axis2.transport.http.AxisServlet.handleFault(AxisServlet.java:416)
>> at
>>
>>
>> org.apache.axis2.transport.http.AxisServlet.processAxisFault(AxisServlet.java:379)
>> at
>>
>> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:167)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>> at
>>
>>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>> at
>>
>>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>> at
>>
>>
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>> at
>>
>>
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
>> at
>>
>>
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>> at
>>
>>
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>> at
>>
>>
>> org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:482)
>> at
>>
>>
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>> at
>>
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
>> at
>>
>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
>> at
>>
>>
>> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
>> at
>>
>>
>> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
>> at
>>
>>
>> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
>> at
>>
>>
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
>> at java.lang.Thread.run(Thread.java:613)
>>
>>
>> So I have a couple of questions:
>> Is the fix for this jira in the Axis2-SNAPSHOT.jar?
>> What is the correct way to use the Axis2-SNAPSHOT.jar? (I know that
>> what I did gives me two versions of many classes which is usually a
>> BAD THING)
>>
>> Thanks for any suggestions.
>>
>> Mary Thompson
>>
>> ---------------------------------------------------------------------
>> Mary R. Thompson <[EMAIL PROTECTED]
>> <mailto:[EMAIL PROTECTED]>>
>> Lawrence Berkeley National Lab
>> http://acs.lbl.gov/~mrt <http://acs.lbl.gov/%7Emrt> <
>> http://acs.lbl.gov/%7Emrt>
>> ----------------------------------------------------------------------
>>
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>