servicemix-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Freeman Fang <freeman.f...@gmail.com>
Subject Re: Take SOAPAction from client's request
Date Tue, 08 Apr 2008 12:43:36 GMT
Hi Esteban,
If you deploy su into a standalone servicemix, you shouldn't configure 
an embeded jbi bus, so just try

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:sm="http://servicemix.apache.org/config/1.0"
   xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
   xmlns:tempuri="http://tempuri.org/">
           <cxfbc:consumer
               wsdl="http://test.intranet/webservices/hello.asmx?WSDL"
               service="tempuri:helloPF"
               endpoint="helloPFPort"
               targetEndpoint="helloPFPortProxy"
               targetService="tempuri:helloPF"
               targetInterface="tempuri:helloPFSoap">
           </cxfbc:consumer>
           <cxfbc:provider
               wsdl="http://test.intranet/webservices/hello.asmx?WSDL"
               locationURI="http://test.intranet/webservices/hello.asmx"
               service="tempuri:helloPF"
               endpoint="helloPFPortProxy"
               interfaceName="tempuri:helloPFSoap">
           </cxfbc:provider>
</beans>

Regards
Freeman

Freeman

Esteban Forzani wrote:
> Hi Freeman, my jbi.xml of the SA is:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <jbi xmlns="http://java.sun.com/xml/ns/jbi" version="1.0">
>   <service-assembly>
>     <identification>
>       <name>HelloProxy-sa</name>
>       <description>HelloProxy :: SA (Proxy Service)</description>
>     </identification>
>     <service-unit>
>       <identification>
>         <name>HelloProxy-cxfbc-su</name>
>         <description>Este módulo es el encargado de configurar un servicio
> proxy usando el CXF BC del ESB.</description>
>       </identification>
>       <target>
>         <artifacts-zip>HelloProxy-cxfbc-su-1.0-SNAPSHOT.zip</artifacts-zip>
>         <component-name>servicemix-cxf-bc</component-name>
>       </target>
>     </service-unit>
>   </service-assembly>
> </jbi>
>
> This is generated by maven when run the install.
>
> Regards
>
> Esteban
>
>
> On Mon, Apr 7, 2008 at 11:50 AM, Freeman Fang <freeman.fang@gmail.com>
> wrote:
>
>   
>> Hi Esteban,
>>
>> Seems your jbi descriptor  didn't specify servicemix-cxf-bc as
>> component-name. Would you please append your jbi.xml of the SA?
>>
>> Freeman
>>
>>
>> Esteban Forzani wrote:
>>
>>     
>>> Hi Freeman,
>>>
>>> When I use cxf bc provider an consumer I couldn't deploy the SU because
>>> throws the following error:
>>> "No endpoints found" in org.apache.servicemix.common
>>> .xbean.AbstractXBeanDeployer
>>>
>>> The xbean.xml for the cxf-bc-su is:
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <beans xmlns:sm="http://servicemix.apache.org/config/1.0"
>>>    xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
>>>    xmlns:tempuri="http://tempuri.org/">
>>>    <sm:container id="jbi" embedded="true">
>>>        <sm:endpoints>
>>>            <cxfbc:consumer
>>>                wsdl="http://test.intranet/webservices/hello.asmx?WSDL"
>>>                service="tempuri:helloPF"
>>>                endpoint="helloPFPort"
>>>                targetEndpoint="helloPFPortProxy"
>>>                targetService="tempuri:helloPF"
>>>                targetInterface="tempuri:helloPFSoap">
>>>            </cxfbc:consumer>
>>>            <cxfbc:provider
>>>                wsdl="http://test.intranet/webservices/hello.asmx?WSDL"
>>>                locationURI="http://test.intranet/webservices/hello.asmx"
>>>                service="tempuri:helloPF"
>>>                endpoint="helloPFPortProxy"
>>>                interfaceName="tempuri:helloPFSoap">
>>>            </cxfbc:provider>
>>>        </sm:endpoints>
>>>    </sm:container>
>>> </beans>
>>>
>>> Thanks
>>>
>>> Esteban
>>>
>>> On Fri, Apr 4, 2008 at 9:58 PM, Freeman Fang <freeman.fang@gmail.com>
>>> wrote:
>>>
>>>
>>>
>>>       
>>>> Hi Esteban,
>>>> They both should work.
>>>> For cxf bc consumer and provider, ensure the endpoint name used in
>>>> consumer and provider is different, for example, use helloPFPortProxy
>>>> for
>>>> provider in your case. And ensure the service / endpoint for your cxf
>>>> bc
>>>> consumer is same as it defined in the wsdl.
>>>> We have a test to show how to configure cxf bc as a bridge, [1] is the
>>>> configuration for more details.
>>>> For cxf bc provider and http consumer, ensure you add
>>>> useJBIWrapper="false" for cxf bc provider configuration, this is new
>>>> feature
>>>> ([2] is jira to track it) after servicemix 3.2.1 release, so you
>>>> should try
>>>> it with 3.2.2 snapshot.
>>>>
>>>> Best Regards
>>>>
>>>> Freeman
>>>>
>>>> [1]
>>>>
>>>> http://svn.apache.org/repos/asf/servicemix/smx3/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/cxf_provider_consumer_bridge.xml
>>>> [2]http://issues.apache.org/activemq/browse/SM-1242
>>>>
>>>> Esteban Forzani wrote:
>>>>
>>>>
>>>>
>>>>         
>>>>> Thanks Freeman and Guillaume, Can I try with cxf bc provider and cxf
>>>>> bc
>>>>> consumer or http consumer?
>>>>>
>>>>> I tried both, when I use cxf bc provider an consumer I couldn't
>>>>> deploy
>>>>> the
>>>>> SU because throws the following error:
>>>>> "No endpoints found" in
>>>>> org.apache.servicemix.common.xbean.AbstractXBeanDeployer
>>>>>
>>>>>  E.g:
>>>>> the xbean.xml for the cxf-bc-su is:
>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>> <beans xmlns:sm="http://servicemix.apache.org/config/1.0"
>>>>>   xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
>>>>>   xmlns:tempuri="http://tempuri.org/">
>>>>>   <sm:container id="jbi" embedded="true">
>>>>>       <sm:endpoints>
>>>>>           <cxfbc:consumer
>>>>>               wsdl="http://test.intranet/webservices/hello.asmx?WSDL
>>>>> "
>>>>>               service="tempuri:helloPF"
>>>>>               endpoint="helloPFPort"
>>>>>               targetEndpoint="helloPFPort"
>>>>>               targetService="tempuri:helloPF"
>>>>>               targetInterface="tempuri:helloPFSoap">
>>>>>           </cxfbc:consumer>
>>>>>           <cxfbc:provider
>>>>>               wsdl="http://test.intranet/webservices/hello.asmx?WSDL
>>>>> "
>>>>>               locationURI="
>>>>> http://test.intranet/webservices/hello.asmx"
>>>>>               service="tempuri:helloPF"
>>>>>               endpoint="helloPFPort"
>>>>>               interfaceName="tempuri:helloPFSoap">
>>>>>           </cxfbc:provider>
>>>>>       </sm:endpoints>
>>>>>   </sm:container>
>>>>> </beans>
>>>>>
>>>>> When I tried with cxf bc provider and http consumer throw a
>>>>> NullPointerException in org.apache.servicemix.cxfbc.CxfBcProvider
>>>>> becoause
>>>>> exchange.getOperation() is null!
>>>>> The xbean.xml for cxf-bc-su is:
>>>>>
>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>> <beans
>>>>>   xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
>>>>>   xmlns:tempuri="http://tempuri.org/">
>>>>>           <cxfbc:provider
>>>>>               wsdl="
>>>>> http://test.intranet/webservices/hellopf.asmx?WSDL"
>>>>>               locationURI="
>>>>> http://test.intranet/webservices/hellopf.asmx"
>>>>>               service="tempuri:helloPF"
>>>>>               endpoint="helloPFPortProxy"
>>>>>               interfaceName="tempuri:helloPFSoap"/>
>>>>> </beans>
>>>>>
>>>>> The xbean.xml for http-su is:
>>>>>
>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>>
>>>>> <beans xmlns:http="http://servicemix.apache.org/http/1.0"
>>>>>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>       xsi:schemaLocation="
>>>>> http://servicemix.apache.org/http/1.0servicemix-http.3.2.xsd"
>>>>>
>>>>>       xmlns:tempuri="http://tempuri.org/" >
>>>>>   <http:endpoint
>>>>>               service="tempuri:helloPF"
>>>>>               endpoint="soap"
>>>>>               role="consumer"
>>>>>               locationURI="http://0.0.0.0:8192/helloPF/"
>>>>>               targetEndpoint="helloPFPortProxy"
>>>>>               targetService="tempuri:helloPF"/>
>>>>> </beans>
>>>>>
>>>>> Thanks
>>>>>
>>>>> Esteban
>>>>>
>>>>>
>>>>> On Tue, Apr 1, 2008 at 3:30 AM, Freeman Fang <freeman.fang@gmail.com
>>>>>           
>>>>> wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>           
>>>>>> Hi Esteban,
>>>>>>
>>>>>> You can try with cxf bc provider, which needn't specify soap
>>>>>> action
>>>>>> explicitly in the xbean and abstract it dynamically from the
>>>>>> message.
>>>>>>
>>>>>> Regards
>>>>>>
>>>>>> Freeman
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Esteban Forzani wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>>>> Hello,
>>>>>>>
>>>>>>> I have a web service with 5 operations, each with a different
>>>>>>> SOAPAction.
>>>>>>> I'm using the servicemix-http component (proxy) to send a soap
>>>>>>> request
>>>>>>> to
>>>>>>> this webservice.
>>>>>>> E.g.:
>>>>>>>
>>>>>>>  <http:endpoint service="WebServicesProxy-http-su:webServices"
>>>>>>>               endpoint="providerEndpoint"
>>>>>>>               role="provider"
>>>>>>>               locationURI="
>>>>>>> http://test.example/webservices/webservices.asmx"
>>>>>>>               defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
>>>>>>>               soap="true"
>>>>>>>               soapVersion="1.1"/>
>>>>>>>
>>>>>>> The request is send to the ESB with the SOAPAction (E.g.
>>>>>>> SOAPAction:
>>>>>>> operation1)
>>>>>>>  but the HTTP-BC set the SOAPAction with "".
>>>>>>>
>>>>>>> I used the property soapAction in xbean.xml, but fixed me the
>>>>>>> operation
>>>>>>> to
>>>>>>> the endpoint.
>>>>>>> E.g.:
>>>>>>>  <http:endpoint service="WebServicesProxy-http-su:webServices"
>>>>>>>               endpoint="providerEndpoint"
>>>>>>>               role="provider"
>>>>>>>               locationURI="
>>>>>>> http://test.example/webservices/webservices.asmx"
>>>>>>>               defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
>>>>>>>               soap="true"
>>>>>>>               soapVersion="1.1"
>>>>>>>               soapAction="http://example.org/operation1"/>
>>>>>>>
>>>>>>> Is it possible to put this property dynamically or take it from
>>>>>>> the
>>>>>>> client's
>>>>>>> request ?
>>>>>>>
>>>>>>> Regards,
>>>>>>>
>>>>>>> Esteban
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>>             
>>>>>
>>>>>
>>>>>           
>>>>         
>>>
>>>
>>>       
>>     
>
>
>   


Mime
View raw message