Hi Amila/Deepal,

    Could you please have a webex session with us once. I request you.
Because if i am engaging the sandesha and rampart, the functionality is not
working properly. But its mandatory to engage botht eh modules. If we can
have a conf call once, we can explain you our problem very clearly.

Thanks,
Swapna Soni.

Amila Suriarachchi wrote:
> 
> On Thu, May 14, 2009 at 7:20 PM, Senthil Sona <sws...@cisco.com> wrote:
> 
>>
>> Hi Deepal,
>>
>>  I am having a if condition in my handler class. I have uploaded the
>> handler class and client class to this forum. Could you please look in to
>> those and let me me know if i am doing anything wrong? As i mentioned in
>> my
>> last reply i am getting "AxisFault error saying first element must
>> contain
>> localname Envelope but found html".
> 
> 
> Can you check your response with a tcpmon. Then you can see the actual
> problem. I think you send the message to wrong epr.
> 
> 
> I want client should get fault response.
>> Sandesha
> 
> 
> I think it is better to test step by step. first test with out sandesa if
> you get the correct error message without sandesha then you can sure about
> it. Then try with sandesha.
> 
> thanks,
> Amila.
> 
>> is also keep on sending the request because its not getting
>> acknowledgement.
>>   Could you please have a webex session with us if possible. So that we
>> can
>> explain you our problem very clearly. I have been trying this
>> functionality
>> from past 20 days. Its consuming lot of time. Please hlep me out.
>>   In axis2.xml file also i am calling custom module phase first and then
>> RMphase bothin INFlow and OutFaultFlow.
>>
>> Thanks,
>> Swapna Soni.
>>
>>
>>
>> Deepal Jayasinghe-2 wrote:
>> >
>> > Hi,
>> >
>> > I think what Amila suggested is correct too (and easy as well), just
>> > throw the exception from the handler then transport receiver will
>> handle
>> > the sending part. I think that is the easiest way.  If you are using
>> > same handler for both in-flow and in-fault flow then just have a "if"
>> > condition and handle the logic.
>> >
>> > Deepal
>> >> Hi Deepal/Amila,
>> >>
>> >>      Could you please reply me, how to resolve this exception. This
>> task
>> >> is
>> >> very urgent for me.
>> >>
>> >> Thanks,
>> >> Swapna Soni.
>> >>
>> >> Amila Suriarachchi wrote:
>> >>
>> >>> On Thu, May 14, 2009 at 11:47 AM, Senthil Sona <sws...@cisco.com>
>> wrote:
>> >>>
>> >>>
>> >>>> Hi Amila,
>> >>>>
>> >>>>    I have set the written the below code in my custom module.
>> >>>>
>> >>>>         public InvocationResponse invoke(MessageContext msgContext)
>> >>>> throws
>> >>>> AxisFault {
>> >>>>                if(msgContext.getFLOW()==1)
>> >>>>                  {
>> >>>>                         MessageContext faultContext =
>> >>>>
>> >>>> MessageContextBuilder.createFaultMessageContext(msgContext, new
>> >>>> AxisFault("validation failed error", new QName("validation error",
>> >>>> "wsa")));
>> >>>>                         AxisEngine.sendFault(faultContext);
>> >>>>
>> >>>>
>> >>> here as I told you earlier try to throw the AxisFault()
>> >>>
>> >>> i.e throw new AxisFault("validation error");
>> >>>
>> >>> then the fault sending part is done at the transport level.
>> >>>
>> >>> thanks,
>> >>> Amila.
>> >>>
>> >>>
>> >>>>                  }
>> >>>>          return InvocationResponse.ABORT;
>> >>>>        }
>> >>>>
>> >>>> But when running the client program i am getting error at client
>> >>>> console
>> >>>> like
>> >>>>
>> >>>> org.apache.axis2.AxisFault: The input stream for an incoming message
>> is
>> >>>> null.
>> >>>>        at
>> >>>>
>> >>>>
>> org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:72)
>> >>>>        at
>> >>>>
>> >>>>
>> org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:353)
>> >>>>         at
>> >>>>
>> >>>>
>> org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:416)
>> >>>>        at
>> >>>>
>> >>>>
>> org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)
>> >>>>        at
>> >>>>
>> org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
>> >>>>        at
>> >>>>
>> org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:548)
>> >>>>        at
>> >>>>
>> org.apache.rahas.client.STSClient.requestSecurityToken(STSClient.java:127)
>> >>>>        at
>> >>>> org.apache.rampart.util.RampartUtil.getToken(RampartUtil.java:486)
>> >>>>        at
>> >>>>
>> org.apache.rampart.util.RampartUtil.getSecConvToken(RampartUtil.java:396)
>> >>>>        at
>> >>>>
>> >>>>
>> org.apache.rampart.builder.SymmetricBindingBuilder.initializeTokens(SymmetricBindingBuilder.java:670)
>> >>>>
>> >>>> For outFaultFlow i am calling same handler and wrote the code like
>> >>>>
>> >>>>           if(msgContext.getFLOW()==4) {
>> >>>>                System.out.println("This is OutFaultFlow");
>> >>>>                System.out.println("
>> >>>> messagecontext=="+msgContext.getEnvelope());
>> >>>>           }
>> >>>> So its printing the fault soap resonse
>> >>>>
>> >>>> <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:s
>> >>>> oapenv="http://www.w3.org/2003/05/soap-envelope
>> >>>> "><soapenv:Body><soapenv:Fault
>> >>>> xm
>> >>>> lns:axis2ns5="validation
>> >>>> error"><soapenv:Code><soapenv:Value>axis2ns5:wsa</soape
>> >>>> nv:Value></soapenv:Code><soapenv:Reason><soapenv:Text
>> >>>> xml:lang="en-US">validatio
>> >>>> n failed error</soapenv:Text></soapenv:Reason><soapenv:Detail
>> >>>> /></soapenv:Fault>
>> >>>> </soapenv:Body></soapenv:Envelope>
>> >>>>
>> >>>> I want this response should be printed at client console. How can i
>> do
>> >>>> this,
>> >>>> please help me. Its stopping our  productivity.
>> >>>>
>> >>>> I have uploaded the Handler class and client class. Could you please
>> >>>> have
>> >>>> a
>> >>>> webex session with us. So that we can show you our complete code and
>> >>>> how
>> >>>> the
>> >>>> program is behaving when we run the client. It will help us to
>> resolve
>> >>>> the
>> >>>> problem soon.
>> >>>>
>> >>>> Thanks,
>> >>>> Swapna Soni.
>> >>>>
>> >>>>
>> >>>> Amila Suriarachchi wrote:
>> >>>>
>> >>>>> On Wed, May 13, 2009 at 8:48 PM, Senthil Sona <sws...@cisco.com>
>> >>>>> wrote:
>> >>>>>
>> >>>>>
>> >>>>>> Hi Deepal,
>> >>>>>>
>> >>>>>>    I have added the code in the handler class like
>> >>>>>>
>> >>>>>>        if(msgContext.getFLOW()==1)
>> >>>>>>        {
>> >>>>>>                 logger.info("This is inFlow");
>> >>>>>>                  System.out.println("This is inFlow");
>> >>>>>>                 MessageContext faultContext =
>> >>>>>>
>> >>>>>> MessageContextBuilder.createFaultMessageContext(msgContext, new
>> >>>>>> AxisFault("validation failed error", new QName("validation error",
>> >>>>>> "wsa")));
>> >>>>>>                         AxisEngine.sendFault(faultContext);
>> >>>>>>
>> >>>>> it is bit difficult to answer your question without looking all
>> your
>> >>>>>
>> >>>> code.
>> >>>>
>> >>>>> But try this.
>> >>>>>
>> >>>>>
>> >>>>> if you want to send a soap fault to client side, throw an AxisFault
>> >>>>>
>> >>>> here.
>> >>>>
>> >>>>> When you throw an AxisFault it is caught at the transport level and
>> it
>> >>>>> sends
>> >>>>> the fault message by calling to fault flow.
>> >>>>>
>> >>>>> if you want to send a normal soap message do this,
>> >>>>>
>> >>>>> MessageContext outMsgContext =
>> >>>>> MessageContextBuilder.createOutMessageContext(msgContext);
>> >>>>> AxisEngine.send(outMsgContext);
>> >>>>> return InvocationResponse.ABORT
>> >>>>>
>> >>>>> here it is important to return InvocationResponse.ABORT to
>> terminate
>> >>>>>
>> >>>> the
>> >>>>
>> >>>>> inFlow.
>> >>>>>
>> >>>>> thanks,
>> >>>>> Amila.
>> >>>>>
>> >>>>>
>> >>>>>>        }
>> >>>>>>
>> >>>>>>  I am using the same handler class for inflow and outfault flow
>> thats
>> >>>>>>
>> >>>> why
>> >>>>
>> >>>>>> i
>> >>>>>> am checking if(msgContext.getFLOW()==1). At client console i am
>> >>>>>>
>> >>>> getting
>> >>>>
>> >>>>>> error like
>> >>>>>>
>> >>>>>> org.apache.axis2.AxisFault: validation failed error
>> >>>>>>        at
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>
>> org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:512)
>> >>>>
>> >>>>>>        at
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>
>> org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:370)
>> >>>>
>> >>>>>>        at
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>
>> org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:416)
>> >>>>
>> >>>>>>        at
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>
>> org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)
>> >>>>
>> >>>>>>        at
>> >>>>>>
>> >>>>>>
>> >>>>
>> org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
>> >>>>
>> >>>>>>        at
>> >>>>>>
>> >>>>>>
>> >>>>
>> org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:548)
>> >>>>
>> >>>>>>        at
>> >>>>>>
>> >>>>>>
>> >>>>
>> org.apache.rahas.client.STSClient.requestSecurityToken(STSClient.java:127)
>> >>>>
>> >>>>>>        at
>> >>>>>> org.apache.rampart.util.RampartUtil.getToken(RampartUtil.java:486)
>> >>>>>>        at
>> >>>>>>
>> >>>>>>
>> >>>>
>> org.apache.rampart.util.RampartUtil.getSecConvToken(RampartUtil.java:396)
>> >>>>
>> >>>>>>        at
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>
>> org.apache.rampart.builder.SymmetricBindingBuilder.initializeTokens(SymmetricBindingBuilder.java:670)
>> >>>>
>> >>>>>>        at
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>
>> org.apache.rampart.builder.SymmetricBindingBuilder.build(SymmetricBindingBuilder.java:73)
>> >>>>
>> >>>>>>        at
>> >>>>>> org.apache.rampart.MessageBuilder.build(MessageBuilder.java:128)
>> >>>>>>        at
>> >>>>>>
>> org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:64)
>> >>>>>>        at org.apache.axis2.engine.Phase.invoke(Phase.java:317)
>> >>>>>>        at
>> >>>>>>
>> >>>> org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:264)
>> >>>>
>> >>>>>>        at
>> >>>>>> org.apache.axis2.engine.AxisEngine.resumeSend(AxisEngine.java:370)
>> >>>>>>        at
>> >>>>>>
>> org.apache.sandesha2.workers.SenderWorker.run(SenderWorker.java:287)
>> >>>>>>        at
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>
>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
>> >>>>
>> >>>>>>        at
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>
>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
>> >>>>
>> >>>>>>        at java.lang.Thread.run(Thread.java:735)
>> >>>>>>
>> >>>>>> and its keep on executing the handler, Because i am able to see
>> the
>> >>>>>>
>> >>>> log
>> >>>>
>> >>>>>> message i am printing in inflow if condition again and again. I am
>> >>>>>> printing
>> >>>>>> the message context in OutFaultFlow. i am getting the message like
>> >>>>>>
>> >>>>>> This is OutFaultFlow
>> >>>>>>  messagecontext==<?xml version='1.0'
>> >>>>>>
>> >>>> encoding='utf-8'?><soapenv:Envelope
>> >>>>
>> >>>>>> xmlns:s
>> >>>>>> oapenv="http://www.w3.org/2003/05/soap-envelope
>> >>>>>> "><soapenv:Body><soapenv:Fault
>> >>>>>> xm
>> >>>>>> lns:axis2ns5="validation
>> >>>>>> error"><soapenv:Code><soapenv:Value>axis2ns5:wsa</soape
>> >>>>>> nv:Value></soapenv:Code><soapenv:Reason><soapenv:Text
>> >>>>>> xml:lang="en-US">validatio
>> >>>>>> n failed error</soapenv:Text></soapenv:Reason><soapenv:Detail
>> >>>>>> /></soapenv:Fault>
>> >>>>>> </soapenv:Body></soapenv:Envelope>
>> >>>>>>
>> >>>>>> Thanks,
>> >>>>>> Swapna Soni.
>> >>>>>>
>> >>>>>> Deepal Jayasinghe-2 wrote:
>> >>>>>>
>> >>>>>>> Try this,
>> >>>>>>>
>> >>>>>>> MessageContext faultContext =
>> >>>>>>> MessageContextBuilder.createFaultMessageContext(messageCtx, e);
>> >>>>>>> AxisEngine.sendFault(faultContext);
>> >>>>>>>
>> >>>>>>> - Deepal
>> >>>>>>>
>> >>>>>>>> Hi Deepal,
>> >>>>>>>>
>> >>>>>>>>    Thanks for your reply. If we set the
>> >>>>>>>>
>> >>>>>> AxisEngine.sendFault(msgContext)
>> >>>>>>
>> >>>>>>>> in
>> >>>>>>>> inflow handler, it will execute the outFaultFlow but client
>> program
>> >>>>>>>>
>> >>>>>> wotn
>> >>>>>>
>> >>>>>>>> get
>> >>>>>>>> any response and we are getting org.apache.axis2.AxisFault: Read
>> >>>>>>>>
>> >>>> timed
>> >>>>
>> >>>>>>>> out
>> >>>>>>>> exception. And its again and again executing the inflow handler.
>> >>>>>>>>
>> >>>> For
>> >>>>
>> >>>>>>>> testing
>> >>>>>>>> purpose i have written
>> >>>>>>>>      if(msgContext.getFLOW()==1)
>> >>>>>>>>         {
>> >>>>>>>>               logger.info("This is inFlow");
>> >>>>>>>> }
>> >>>>>>>>  in the inFlowhandler class and its getting execute again and
>> >>>>>>>>
>> >>>> again.
>> >>>>
>> >>>>>> But
>> >>>>>>
>> >>>>>>>> i
>> >>>>>>>> want it should get execute only once when request comes from
>> client
>> >>>>>>>>
>> >>>>>> and
>> >>>>>>
>> >>>>>>>> it
>> >>>>>>>> should do validation of that request message, if something is
>> wrong
>> >>>>>>>>
>> >>>>>> then
>> >>>>>>
>> >>>>>>>> outflow or OutFaultFlow should get execute and send the proper
>> >>>>>>>>
>> >>>> error
>> >>>>
>> >>>>>>>> response to client and should get terminate there only. Once we
>> get
>> >>>>>>>>
>> >>>>>> any
>> >>>>>>
>> >>>>>>>> validation error in inFlow handler, it should not process
>> further
>> >>>>>>>>
>> >>>>>> engaged
>> >>>>>>
>> >>>>>>>> module and request should terminate in inFlow and from there
>> client
>> >>>>>>>> should
>> >>>>>>>> get response via outFlow or outFaultFlow.
>> >>>>>>>>
>> >>>>>>>>    We are engaging the sandesha and rampart from in the client
>> >>>>>>>>
>> >>>> program
>> >>>>
>> >>>>>>>> only.
>> >>>>>>>>
>> >>>>>>>>                      sender.engageModule("addressing");
>> >>>>>>>>                      sender.engageModule("sandesha2");
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>  options.setProperty(SandeshaClientConstants.OFFERED_SEQUENCE_ID,
>> >>>>>>
>> >>>>>>>> "Yash_Seq");
>> >>>>>>>>                      sender.engageModule("rampart");
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>  options.setProperty(RampartMessageData.KEY_RAMPART_POLICY,
>> >>>>>>
>> >>>>
>> loadPolicy("C:/WS-X/misc/20090427/WTPTestRM2Client/WebContent/WEB-INF/conf/policy.xml"));
>> >>>>
>> >>>>>>>> Could you please let us know how to achieve this functionality.
>> >>>>>>>>
>> >>>>>>>> Thanks,
>> >>>>>>>> Swapna Soni.
>> >>>>>>>>
>> >>>>>>>> Deepal Jayasinghe-2 wrote:
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>>> Behavior will be different based on the dispatch status, but
>> you
>> >>>>>>>>>
>> >>>> can
>> >>>>
>> >>>>>>>>> simply call.
>> >>>>>>>>>
>> >>>>>>>>> AxisEngine.sendFault(messageContext)
>> >>>>>>>>>
>> >>>>>>>>> Then it will send  the fault
>> >>>>>>>>>
>> >>>>>>>>> -  Deepal
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>> Hi Axis Team,
>> >>>>>>>>>>
>> >>>>>>>>>>     I have one very urgent requirement. One client program
>> >>>>>>>>>>
>> >>>> invokes
>> >>>>
>> >>>>>> the
>> >>>>>>
>> >>>>>>>>>> service in which sandesha, rampart and one custom module is
>> >>>>>>>>>>
>> >>>> engaged.
>> >>>>
>> >>>>>> In
>> >>>>>>
>> >>>>>>>>>> custom Inflow handler we do some validation. If something is
>> >>>>>>>>>>
>> >>>> wrong
>> >>>>
>> >>>>>> in
>> >>>>>>
>> >>>>>>>>>> that
>> >>>>>>>>>> validation, then we want it to start the outFlow and send the
>> >>>>>>>>>>
>> >>>> custom
>> >>>>
>> >>>>>>>>>> response to client back without executing further engaged
>> modules
>> >>>>>>>>>>
>> >>>>>> and
>> >>>>>>
>> >>>>>>>>>> without invoking service.
>> >>>>>>>>>>
>> >>>>>>>>>>    Could anyone please tell me how can i do this using axis2
>> api.
>> >>>>>>>>>>
>> >>>>>> Its
>> >>>>>>
>> >>>>>>>>>> very
>> >>>>>>>>>> very urgent requirement for us.
>> >>>>>>>>>>
>> >>>>>>>>>> Thanks,
>> >>>>>>>>>> swapna soni
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>> --
>> >>>>>>>>> Thank you!
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>> http://blogs.deepal.org
>> >>>>>>>>> http://deepal.org
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>
>> >>>>>>> --
>> >>>>>>> Thank you!
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> http://blogs.deepal.org
>> >>>>>>> http://deepal.org
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>> --
>> >>>>>> View this message in context:
>> >>>>>>
>> >>>>>>
>> >>>>
>> http://www.nabble.com/How-to-terminate-InFlow-and-start-OutFlow-in-the-custom-handler-of-axis2-tp23521710p23523940.html
>> >>>>
>> >>>>>> Sent from the Axis - Dev mailing list archive at Nabble.com.
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>> --
>> >>>>> Amila Suriarachchi
>> >>>>> WSO2 Inc.
>> >>>>> blog: http://amilachinthaka.blogspot.com/
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>> http://www.nabble.com/file/p23534995/LogHandler.java LogHandler.java
>> >>>> http://www.nabble.com/file/p23534995/client.java client.java
>> >>>> --
>> >>>> View this message in context:
>> >>>>
>> http://www.nabble.com/How-to-terminate-InFlow-and-start-OutFlow-in-the-custom-handler-of-axis2-tp23521710p23534995.html
>> >>>> Sent from the Axis - Dev mailing list archive at Nabble.com.
>> >>>>
>> >>>>
>> >>>>
>> >>> --
>> >>> Amila Suriarachchi
>> >>> WSO2 Inc.
>> >>> blog: http://amilachinthaka.blogspot.com/
>> >>>
>> >>>
>> >>>
>> >>
>> >>
>> >
>> >
>> > --
>> > Thank you!
>> >
>> >
>> > http://blogs.deepal.org
>> > http://deepal.org
>> >
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/How-to-terminate-InFlow-and-start-OutFlow-in-the-custom-handler-of-axis2-tp23521710p23540933.html
>> Sent from the Axis - Dev mailing list archive at Nabble.com.
>>
>>
> 
> 
> -- 
> Amila Suriarachchi
> WSO2 Inc.
> blog: http://amilachinthaka.blogspot.com/
> 
> 

-- 
View this message in context: 
http://www.nabble.com/How-to-terminate-InFlow-and-start-OutFlow-in-the-custom-handler-of-axis2-tp23521710p23554640.html
Sent from the Axis - Dev mailing list archive at Nabble.com.

Reply via email to