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 Wed, 09 Apr 2008 00:27:40 GMT
Hi Esteban,

The url is specified in the wsdl, or you can add 
locationURI="http://whatyouwant" to cxf bc consumer to override it.
Regards

Freeman

Esteban Forzani wrote:
> OK, thanks Freeman, it worked!  and how can I invoke the consumer from a
> client? Which is your URL?
>
> Thanks
>
> Regards
>
> Esteban
>
> On Tue, Apr 8, 2008 at 9:43 AM, Freeman Fang <freeman.fang@gmail.com> wrote:
>
>   
>> 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