Hi,

On Fri, Jul 13, 2012 at 4:47 PM, Lakmali Baminiwatta <[email protected]>wrote:

> Hi all,
>
>
> On Wed, Jul 11, 2012 at 6:23 PM, Supun Kamburugamuva <[email protected]>wrote:
>
>> The server config context has the nhttp transport as the http transport.
>> So callout mediator will pick this transport if we use the server
>> configuration context. We should have a proper naming for the transports in
>> axis2 before we can do this. i.e. At the moment axis2 thinks that the name
>> of the transport is equal to the protocol name of the transport.
>
>
> We were able to use Callout mediator with local transport by doing some
> modifications to the synapse Callout mediator. We are proposing to add an
> attribute 'useServerConfig' to the callout mediator which will use server
> configuration context if set as true. By default it will be false and
> Client configuration context will be used.
>
> So to use the Server Configuration in Callout mediator, the configuration
> will be,
>
> <callout serviceURL="local://localhost/services/DTPSampleService"
> action="urn:addToAccountBalanceInBank2" useServerConfig="true">
>                 <source xpath="$body/child::*[fn:position()=1]"/>
>                 <target xpath="$body/child::*[fn:position()=1]"/>
>  </callout>
>
> The modification done to the Callout Mediator was changing the init method
> of CalloutMediator.java
>
> public void init(SynapseEnvironment synEnv) {
>         try {
>             if (useServerConfig) {
>                 configCtx = ((Axis2SynapseEnvironment)
> synEnv).getAxis2ConfigurationContext();
>             } else {
>                 configCtx =
> ConfigurationContextFactory.createConfigurationContextFromFileSystem(
>                          clientRepository != null ? clientRepository :
> DEFAULT_CLIENT_REPO,
>                  axis2xml != null ? axis2xml : DEFAULT_AXIS2_XML);
>             }
>         } catch (AxisFault e) {
>             String msg = "Error initializing callout mediator : " +
> e.getMessage();
>             log.error(msg, e);
>             throw new SynapseException(msg, e);
>         }
>     }
>
> When *useServerConfig* is set true, the *configCtx* will be initialized
> with Server Configuration Context as in Send mediator.
>
> Shall we proceed with this solution?
>

Attaching the patch for the fix done.

Thanks,
Lakmali

>
> Thanks,
> Lakmali
>
>>
>> Thanks,
>> Supun..
>>
>>
>> On Wed, Jul 11, 2012 at 4:46 AM, Lakmali Baminiwatta <[email protected]>wrote:
>>
>>> Hi,
>>>
>>> How can we proceed if we are going to change the Callout mediator to use
>>> the server config context as well?
>>>
>>> Thanks,
>>> Lakmali
>>>
>>>
>>>
>>> On Tue, Jul 10, 2012 at 11:39 PM, Kasun Indrasiri <[email protected]>wrote:
>>>
>>>> However, following scenario seems to work fine. Seems this is not the
>>>> expected behavior.
>>>>
>>>>    <proxy name="EchoProxy" transports="https http" startOnLoad="true"
>>>> trace="disable">
>>>>         <description/>
>>>>         <target>
>>>>             <inSequence>
>>>>
>>>>                 <callout serviceURL="local://services/echo"
>>>> action="urn:echoString">
>>>>                     <source xmlns:s12="
>>>> http://www.w3.org/2003/05/soap-envelope"; xmlns:s11="
>>>> http://schemas.xmlsoap.org/soap/envelope/";
>>>> xpath="s11:Body/child::*[fn:position()=1] |
>>>> s12:Body/child::*[fn:position()=1]"/>
>>>>                     <target xmlns:s12="
>>>> http://www.w3.org/2003/05/soap-envelope"; xmlns:s11="
>>>> http://schemas.xmlsoap.org/soap/envelope/";
>>>> xpath="s11:Body/child::*[fn:position()=1] |
>>>> s12:Body/child::*[fn:position()=1]"/>
>>>>                 </callout>
>>>>                 <property name="RESPONSE" value="true"/>
>>>>                 <header name="To" action="remove"/>
>>>>                 <send/>
>>>>             </inSequence>
>>>>             <outSequence>
>>>>                 <send/>
>>>>             </outSequence>
>>>>         </target>
>>>>     </proxy>
>>>>
>>>> On Tue, Jul 10, 2012 at 10:23 PM, Supun Kamburugamuva <
>>>> [email protected]> wrote:
>>>>
>>>>> For the local transport to work both the invoker and the invoking
>>>>> service should be in the same configuration context. So this scenario will
>>>>> never work with the local transport + callout mediator.
>>>>>
>>>>> Thanks,
>>>>> Supun..
>>>>>
>>>>> On Tue, Jul 10, 2012 at 12:48 PM, Hiranya Jayathilaka <
>>>>> [email protected]> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, Jul 10, 2012 at 5:50 PM, Lakmali Baminiwatta <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> On Tue, Jul 10, 2012 at 5:26 PM, Hiranya Jayathilaka <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Send mediator and callout mediator use different
>>>>>>>> ConfigurationContext instances. Former uses the server cfgctx and the
>>>>>>>> latter uses the client cfgctx. That should be the problem.
>>>>>>>
>>>>>>>
>>>>>>> I have enabled local transport on
>>>>>>> samples/axis2Client/client_repo/conf/axis2.xml. Does it require more
>>>>>>> configurations to the client cfgctx ?
>>>>>>>
>>>>>>
>>>>>> I think the local transport looks up the cfgctx to find the target
>>>>>> AxisService. So unless you somehow use the server cfgctx in the callout
>>>>>> mediator, this scenario will never work. Better to debug and confirm - 
>>>>>> I'm
>>>>>> not 100% certain.
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>> If you're using the local transport, it doesn't matter which
>>>>>>>> mediator you use performance wise. So why not just use the send 
>>>>>>>> mediator?
>>>>>>>>
>>>>>>>
>>>>>>> The requirement is to get the response from the endpoint in the same
>>>>>>> sequence. For instance with send mediator , when the operation at the
>>>>>>> endpoint is failed and soap fault is returned, it will go to the
>>>>>>> outSequence. Is there a way to jump to the fault sequence once a soap 
>>>>>>> fault
>>>>>>> has returned from the endpoint?
>>>>>>>
>>>>>>
>>>>>> Use a simple filter in the out-sequence to check the message and jump
>>>>>> to the fault sequence. It will be something like this:
>>>>>>
>>>>>> <filter xpath="get-property('FAULT')">
>>>>>>    <sequence key="my_fault_seq"/>
>>>>>>    <drop/>
>>>>>> </filter>
>>>>>>
>>>>>> Thanks,
>>>>>> Hiranya
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> I am trying to do a distributed transaction between dataservice
>>>>>>> endpoints, using ESB transport mediator. When an operation in one of the
>>>>>>> data service endpoint has failed, the soap fault message will be 
>>>>>>> received
>>>>>>> in the out sequence. As a result we are facing a problem of where to 
>>>>>>> call
>>>>>>> rollback action on transport mediator.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Lakmali
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Hiranya
>>>>>>>>
>>>>>>>> On Tue, Jul 10, 2012 at 1:44 PM, Lakmali Baminiwatta <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Tue, Jul 10, 2012 at 1:09 PM, Lakmali Baminiwatta <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> I am trying to configure ESB Callout mediator to access a
>>>>>>>>>> dataservice endpoint through local transport. I have enabled local
>>>>>>>>>> transport on samples/axis2Client/client_repo/conf/axis2.xml.
>>>>>>>>>>
>>>>>>>>>> I configured the callout mediator serviceURL and action as
>>>>>>>>>> follows,
>>>>>>>>>>
>>>>>>>>>> * <callout serviceURL="
>>>>>>>>>> http://localhost:8282/services/updateNonxaTrans "
>>>>>>>>>> action="urn:UpdateXATransOp">
>>>>>>>>>> *
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> The callout mediator configuration I used  was,
>>>>>>>>> *
>>>>>>>>> <callout serviceURL="local://localhost/services/updateNonxaTrans**"
>>>>>>>>> action="urn:UpdateXATransOp">*
>>>>>>>>>
>>>>>>>>> I have mistakenly mentioned a wrong URL above.
>>>>>>>>>
>>>>>>>>>> *
>>>>>>>>>> *I am getting the following error while invoking the service.
>>>>>>>>>>
>>>>>>>>>> ERROR - AxisEngine The service cannot be found for the endpoint
>>>>>>>>>> reference (EPR) local://localhost/services/updateNonxaTrans
>>>>>>>>>> org.apache.axis2.AxisFault: The service cannot be found for the
>>>>>>>>>> endpoint reference (EPR) local://localhost/services/updateNonxaTrans
>>>>>>>>>>     at
>>>>>>>>>> org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:78)
>>>>>>>>>>     at org.apache.axis2.engine.Phase.invoke(Phase.java:329)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:262)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:168)
>>>>>>>>>>
>>>>>>>>>> But the endpoint works when configured with send mediator.
>>>>>>>>>>
>>>>>>>>>> How can we use callout mediator to access endpoints through local
>>>>>>>>>> transport?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>> Lakmali
>>>>>>>>>> --
>>>>>>>>>> Lakmali Baminiwatta*
>>>>>>>>>> *
>>>>>>>>>> Software Engineer
>>>>>>>>>> WSO2, Inc.: http://wso2.com
>>>>>>>>>> lean.enterprise.middleware
>>>>>>>>>>
>>>>>>>>>> *
>>>>>>>>>> *
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Lakmali Baminiwatta*
>>>>>>>>> *
>>>>>>>>> Software Engineer
>>>>>>>>> WSO2, Inc.: http://wso2.com
>>>>>>>>> lean.enterprise.middleware
>>>>>>>>> mobile:  +94 71 2335936
>>>>>>>>> *
>>>>>>>>> *
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Dev mailing list
>>>>>>>>> [email protected]
>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Hiranya Jayathilaka
>>>>>>>> Senior Technical Lead;
>>>>>>>> WSO2 Inc.;  http://wso2.org
>>>>>>>> E-mail: [email protected];  Mobile: +94 77 633 3491
>>>>>>>> Blog: http://techfeast-hiranya.blogspot.com
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Lakmali Baminiwatta*
>>>>>>> *
>>>>>>> Software Engineer
>>>>>>> WSO2, Inc.: http://wso2.com
>>>>>>> lean.enterprise.middleware
>>>>>>> mobile:  +94 71 2335936
>>>>>>> *
>>>>>>> *
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Hiranya Jayathilaka
>>>>>> Senior Technical Lead;
>>>>>> WSO2 Inc.;  http://wso2.org
>>>>>> E-mail: [email protected];  Mobile: +94 77 633 3491
>>>>>> Blog: http://techfeast-hiranya.blogspot.com
>>>>>>
>>>>>> _______________________________________________
>>>>>> Dev mailing list
>>>>>> [email protected]
>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Supun Kamburugamuva
>>>>> Member, Apache Software Foundation; http://www.apache.org
>>>>> E-mail: [email protected] <[email protected]>;  Mobile: +94 77 431 3585
>>>>> Blog: http://supunk.blogspot.com
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Dev mailing list
>>>>> [email protected]
>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Kasun Indrasiri
>>>> Associate Technical Lead
>>>>
>>>> WSO2, Inc.; http://wso2.com
>>>> lean.enterprise.middleware
>>>>
>>>> cell: +94 71 536 4128
>>>> Blog : http://kasunpanorama.blogspot.com/
>>>>
>>>> _______________________________________________
>>>> Dev mailing list
>>>> [email protected]
>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>
>>>>
>>>
>>>
>>> --
>>> Lakmali Baminiwatta*
>>> *
>>> Software Engineer
>>> WSO2, Inc.: http://wso2.com
>>> lean.enterprise.middleware
>>> mobile:  +94 71 2335936
>>> *
>>> *
>>>
>>>
>>
>>
>> --
>> Supun Kamburugamuva
>> Member, Apache Software Foundation; http://www.apache.org
>> E-mail: [email protected] <[email protected]>;  Mobile: +94 77 431 3585
>> Blog: http://supunk.blogspot.com
>>
>>
>>
>>
>
>
> --
> Lakmali Baminiwatta*
> *
> Software Engineer
> WSO2, Inc.: http://wso2.com
> lean.enterprise.middleware
> mobile:  +94 71 2335936
> *
> *
>
>


-- 
Lakmali Baminiwatta*
*
Software Engineer
WSO2, Inc.: http://wso2.com
lean.enterprise.middleware
mobile:  +94 71 2335936
*
*

Attachment: CalloutFix.patch
Description: Binary data

_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to