You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Esteban Forzani <ef...@gmail.com> on 2008/03/31 21:40:29 UTC

Take SOAPAction from client's request

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

Re: Take SOAPAction from client's request

Posted by Freeman Fang <fr...@gmail.com>.
Hi Antonio,
Yes, append the wsdl should be more helpful since we can know if your 
servicename, interfacename, endpoint is correct from that.
And could you append the whole log here?
Did your server http://altair:8080/CurrencyConverter/services/EURUSD 
really get invoked? If so, could you use some tool like tcpmonitor to 
dump the soap message?
If the problem happen in cxf bc consumer, I guess the problem maybe 
here, you specify
wsdl="http://altair:8080/CurrencyConverter/services/EURUSD?wsdl" for cxf 
bc consumer, but the process we do in cxf bc consumer is
1. parse the wsdl according to your configuration
2. publish the endpoint according to wsdl,  at that time the port 
8080(which you specify in the wsdl port address) is on.
So if you specify wsdl like http://altair:8080.., I don't think we can 
get wsdl since the port is not on at all when we try to parse the wsdl, 
you need save wsdl on your disk and refer it, like we do in tests.

Best Regards

Freeman

antoniofer wrote:
> Yes, as suggested in the thread we are using ServiceMix-3.2.2-SNAPSHOT but
> still getting that error :(
>
>
>
> gnodet wrote:
>   
>> Have you tried with 3.2.2-SNAPSHOT ? Lots of issues have been fixed in the
>> cxf components afaik.
>>
>> On Wed, Apr 9, 2008 at 4:32 PM, antoniofer <an...@dit.upm.es> wrote:
>>
>>     
>>> Hi Esteban, Freeman, Guillaume,
>>>
>>> I've been following this thread because I was having the same issue than
>>> Esteban (SoapAction header) when proxying web services through
>>> ServiceMix.
>>> I'm getting an exception when the WS client tries to run the WS by
>>> connecting to ServiceMix:
>>>
>>> INFO  - AutoDeploymentService  - Directory: hotdeploy: Finished
>>> installation
>>> of archive:  wsproxy-cxf-sa.zip <- my SA
>>> Apr 9, 2008 4:22:28 PM org.apache.cxf.phase.PhaseInterceptorChain
>>> doIntercept
>>> INFO: Interceptor has thrown exception, unwinding now
>>> java.lang.NullPointerException
>>>        at
>>>
>>> org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.processFaultDetail(CxfBcConsumer.java:560)
>>>        at
>>>
>>> org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.handleMessage(CxfBcConsumer.java:518)
>>> ....etc.
>>>
>>> My xbean.xml (gondor2 is the hostname of ServiceMix server and altair is
>>> the
>>> hostname where the WebService is running) 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:firma="http://currencyconverter.strast.dit.upm.es">
>>>           <cxfbc:consumer
>>>
>>> wsdl="http://altair:8080/CurrencyConverter/services/EURUSD?wsdl"
>>>               service="firma:EURUSDService"
>>>               endpoint="EURUSDProxy"
>>>               targetEndpoint="EURUSD"
>>>               targetService="firma:EURUSDService"
>>>               targetInterface="firma:EURUSDSoapBinding"
>>>
>>> locationURI="http://gondor2:8080/CurrencyConverter/services/EURUSD">
>>>           </cxfbc:consumer>
>>>           <cxfbc:provider
>>>
>>> wsdl="http://altair:8080/CurrencyConverter/services/EURUSD?wsdl"
>>>
>>> locationURI="http://altair:8080/CurrencyConverter/services/EURUSD"
>>>               service="firma:EURUSDService"
>>>               endpoint="EURUSD"
>>>               interfaceName="firma:EURUSDSoapBinding">
>>>           </cxfbc:provider>
>>> </beans>
>>>
>>> I don't know if you need the .wsdl file. I'm not sure if the endpoint,
>>> service and interfaceName configuration is right. Perhaps the problem is
>>> different. Any suggestions?
>>>
>>> Thank you very much!
>>>
>>> Antonio
>>>
>>>
>>> Freeman Fang wrote:
>>>       
>>>> 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 <fr...@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
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>                           
>>>>>>>>>>>
>>>>>>>>>>>                       
>>>>>>>>>
>>>>>>>>>                   
>>>>>>>
>>>>>>>               
>>>>>
>>>>>           
>>>>
>>>>         
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Take-SOAPAction-from-client%27s-request-tp16407528p16586203.html
>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>
>>>
>>>       
>> -- 
>> Cheers,
>> Guillaume Nodet
>> ------------------------
>> Blog: http://gnodet.blogspot.com/
>>
>>
>>     
>
>   


Re: Take SOAPAction from client's request

Posted by Freeman Fang <fr...@gmail.com>.
Hi Guillaume,

Yes, we'd better add it, since soapaction header check is mandatory for 
lots of servers, even though not for cxf server.
I will take care of this issue.
Cheers
Freeman

Guillaume Nodet wrote:
> Hi Freeman, I'm just wondering if this interceptor should be added by 
> default. Any opinion ?
>
> On Thu, Apr 10, 2008 at 2:30 AM, Freeman Fang <freeman.fang@gmail.com 
> <ma...@gmail.com>> wrote:
>
>     Hi Esteban,
>
>     I forget to mention you need add
>     <cxfbc:outInterceptors>
>                        <bean
>     class="org.apache.cxf.binding.soap.interceptor.SoapActionOutInterceptor"/>
>             </cxfbc:outInterceptors>
>     for your cxf bc provider configuration, this interceptor will
>     add soapAction according to the wsdl to your message.
>     Best Regards
>
>
>     Freeman
>
>     Esteban Forzani wrote:
>
>         Hi, I used ServiceMix-3.2.2-SNAPSHOT also, but don't work,
>         throw it the
>         following exception:
>
>         09-abr-2008 15:54:32
>         org.apache.cxf.phase.PhaseInterceptorChain doIntercept
>         INFO: Interceptor has thrown exception, unwinding now
>         java.lang.NullPointerException
>                at
>         org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown Source)
>                at
>         org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown Source)
>                at
>         org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleJBIFault(JbiInWsdl1I
>         nterceptor.java:220)
>                at
>         org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1In
>         terceptor.java:142)
>                at
>         org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1In
>         terceptor.java:60)
>                at
>         org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
>                at
>         org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.onMessage(CxfBcProviderMessageOb
>         server.java:121)
>                at
>         org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.
>         java:1976)
>                at
>         org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1812
>         )
>                at
>         org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:200)
>                at
>         org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
>                at
>         org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:4
>         90)
>                at
>         org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
>                at
>         org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImp
>         l.java:610)
>                at
>         org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>                at
>         org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
>                at
>         org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>                at
>         java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>                at
>         java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>                at java.lang.Thread.run(Thread.java:595)
>
>         I used to capture the messages TCPMon  and  I discovered that
>         it are not
>         send the SOAPAction from the provider to external webservice.
>         The exception is thrown when trying parse the fault.
>
>         The request from the client to ESB is:
>
>            POST /hello/ HTTP/1.1
>            Content-Type: text/xml;charset=UTF-8
>            SOAPAction: "http://tempuri.org/Operation1"
>            User-Agent: Jakarta Commons-HttpClient/3.0.1
>            Host: localhost:8082
>            Content-Length: 424
>
>            <soapenv:Envelope xmlns:soapenv="
>         http://schemas.xmlsoap.org/soap/envelope/"
>         xmlns:tem="http://tempuri.org/">
>               <soapenv:Header/>
>               <soapenv:Body>
>                  <tem:Operation1>
>                     <!--Optional:-->
>                     <tem:aplicacion>app1</tem:aplicacion>
>                     <!--Optional:-->
>                     <tem:usuario>user1</tem:usuario>
>                  </tem:Operation1>
>               </soapenv:Body>
>            </soapenv:Envelope>
>
>
>         The request from de ESB is:
>
>            POST /webservices/hello.asmx HTTP/1.1
>            Content-Type: text/xml; charset=UTF-8
>            Accept: *
>            Cache-Control: no-cache
>            Pragma: no-cache
>            User-Agent: Java/1.5.0_09
>            Host: test.intranet:8085
>            Connection: keep-alive
>            Transfer-Encoding: chunked
>
>            18a
>            <soap:Envelope
>         xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><tem:Operation1
>         xmlns:tem="http://tempuri.org/">
>
>                     <tem:aplicacion xmlns:tem="http://tempuri.org/
>         ">app1</tem:aplicacion>
>
>                     <tem:usuario xmlns:tem="http://tempuri.org/
>         ">user1</tem:usuario>
>                  </tem:Operation1></soap:Body></soap:Envelope>
>            0
>
>         The Response:
>
>            HTTP/1.1 500 Internal Server Error.
>            Date: Wed, 09 Apr 2008 18:56:49 GMT
>            Server: Microsoft-IIS/6.0
>            IISExport: This web site was exported using IIS Export v4.1
>            X-Powered-By: ASP.NET <http://ASP.NET>
>            X-AspNet-Version: 1.1.4322
>            Cache-Control: private
>            Content-Type: text/xml; charset=utf-8
>            Content-Length: 848
>
>            <?xml version="1.0" encoding="utf-8"?>
>            <soap:Envelope
>         xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
>         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="
>         http://www.w3.org/2001/XMLSchema">
>              <soap:Body>
>                <soap:Fault>
>                  <faultcode>soap:Client</faultcode>
>                
>          <faultstring>System.Web.Services.Protocols.SoapException: Unable
>         to handle request without a valid action parameter. Please
>         supply a valid
>         soap action.
>               at
>         System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest()
>               at
>         System.Web.Services.Protocols.SoapServerProtocol.Initialize()
>               at
>         System.Web.Services.Protocols.ServerProtocolFactory.Create(Type
>         type, HttpContext context, HttpRequest request, HttpResponse
>         response,
>         Boolean&amp; abortProcessing)</faultstring>
>                  <detail />
>                </soap:Fault>
>              </soap:Body>
>            </soap:Envelope>
>
>
>         Regards
>
>         Esteban
>
>         On Wed, Apr 9, 2008 at 1:10 PM, antoniofer
>         <antoniofer@dit.upm.es <ma...@dit.upm.es>> wrote:
>
>          
>
>             Yes, as suggested in the thread we are using
>             ServiceMix-3.2.2-SNAPSHOT but
>             still getting that error :(
>
>
>
>             gnodet wrote:
>                
>
>                 Have you tried with 3.2.2-SNAPSHOT ? Lots of issues
>                 have been fixed in
>                      
>
>             the
>                
>
>                 cxf components afaik.
>
>                 On Wed, Apr 9, 2008 at 4:32 PM, antoniofer
>                 <antoniofer@dit.upm.es <ma...@dit.upm.es>>
>                      
>
>             wrote:
>                
>
>                     Hi Esteban, Freeman, Guillaume,
>
>                     I've been following this thread because I was
>                     having the same issue
>                            
>
>             than
>                
>
>                     Esteban (SoapAction header) when proxying web
>                     services through
>                     ServiceMix.
>                     I'm getting an exception when the WS client tries
>                     to run the WS by
>                     connecting to ServiceMix:
>
>                     INFO  - AutoDeploymentService  - Directory:
>                     hotdeploy: Finished
>                     installation
>                     of archive:  wsproxy-cxf-sa.zip <- my SA
>                     Apr 9, 2008 4:22:28 PM
>                     org.apache.cxf.phase.PhaseInterceptorChain
>                     doIntercept
>                     INFO: Interceptor has thrown exception, unwinding now
>                     java.lang.NullPointerException
>                           at
>
>
>                            
>
>             org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.processFaultDetail(CxfBcConsumer.java:560)
>                
>
>                           at
>
>
>                            
>
>             org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.handleMessage(CxfBcConsumer.java:518)
>                
>
>                     ....etc.
>
>                     My xbean.xml (gondor2 is the hostname of
>                     ServiceMix server and altair
>                            
>
>             is
>                
>
>                     the
>                     hostname where the WebService is running) 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:firma="http://currencyconverter.strast.dit.upm.es">
>                              <cxfbc:consumer
>
>                     wsdl="http://altair:8080/CurrencyConverter/services/EURUSD?wsdl"
>                                  service="firma:EURUSDService"
>                                  endpoint="EURUSDProxy"
>                                  targetEndpoint="EURUSD"
>                                  targetService="firma:EURUSDService"
>                                  targetInterface="firma:EURUSDSoapBinding"
>
>                     locationURI="http://gondor2:8080/CurrencyConverter/services/EURUSD">
>                              </cxfbc:consumer>
>                              <cxfbc:provider
>
>                     wsdl="http://altair:8080/CurrencyConverter/services/EURUSD?wsdl"
>
>                     locationURI="http://altair:8080/CurrencyConverter/services/EURUSD"
>                                  service="firma:EURUSDService"
>                                  endpoint="EURUSD"
>                                  interfaceName="firma:EURUSDSoapBinding">
>                              </cxfbc:provider>
>                     </beans>
>
>                     I don't know if you need the .wsdl file. I'm not
>                     sure if the endpoint,
>                     service and interfaceName configuration is right.
>                     Perhaps the problem
>                            
>
>             is
>                
>
>                     different. Any suggestions?
>
>                     Thank you very much!
>
>                     Antonio
>
>
>                     Freeman Fang wrote:
>                            
>
>                         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
>                             <ma...@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
>                     <ma...@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 <ma...@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
>                                                     <ma...@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
>
>
>
>
>
>
>
>
>
>
>                                                                      
>                                                                      
>                                                                    
>
>
>                                                                      
>                                                          
>
>
>                                                                
>
>
>                                                    
>
>
>                                        
>
>
>                                  
>
>                     --
>                     View this message in context:
>
>                            
>
>             http://www.nabble.com/Take-SOAPAction-from-client%27s-request-tp16407528p16586203.html
>                
>
>                     Sent from the ServiceMix - User mailing list
>                     archive at Nabble.com.
>
>
>                            
>
>                 --
>                 Cheers,
>                 Guillaume Nodet
>                 ------------------------
>                 Blog: http://gnodet.blogspot.com/
>
>
>                      
>
>             --
>             View this message in context:
>             http://www.nabble.com/Take-SOAPAction-from-client%27s-request-tp16407528p16589559.html
>             Sent from the ServiceMix - User mailing list archive at
>             Nabble.com.
>
>
>                
>
>
>          
>
>
>
>
>
> -- 
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/ 


Re: Take SOAPAction from client's request

Posted by Guillaume Nodet <gn...@gmail.com>.
Hi Freeman, I'm just wondering if this interceptor should be added by
default. Any opinion ?

On Thu, Apr 10, 2008 at 2:30 AM, Freeman Fang <fr...@gmail.com>
wrote:

> Hi Esteban,
>
> I forget to mention you need add
> <cxfbc:outInterceptors>
>                    <bean
> class="org.apache.cxf.binding.soap.interceptor.SoapActionOutInterceptor"/>
>         </cxfbc:outInterceptors>
> for your cxf bc provider configuration, this interceptor will
> add soapAction according to the wsdl to your message.
> Best Regards
>
>
> Freeman
>
> Esteban Forzani wrote:
>
> > Hi, I used ServiceMix-3.2.2-SNAPSHOT also, but don't work, throw it the
> > following exception:
> >
> > 09-abr-2008 15:54:32 org.apache.cxf.phase.PhaseInterceptorChain
> > doIntercept
> > INFO: Interceptor has thrown exception, unwinding now
> > java.lang.NullPointerException
> >        at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown
> > Source)
> >        at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown
> > Source)
> >        at
> >
> > org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleJBIFault(JbiInWsdl1I
> > nterceptor.java:220)
> >        at
> >
> > org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1In
> > terceptor.java:142)
> >        at
> >
> > org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1In
> > terceptor.java:60)
> >        at
> >
> > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
> >        at
> >
> > org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.onMessage(CxfBcProviderMessageOb
> > server.java:121)
> >        at
> >
> > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.
> > java:1976)
> >        at
> >
> > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1812
> > )
> >        at
> >
> > org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:200)
> >        at
> >
> > org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
> >        at
> >
> > org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:4
> > 90)
> >        at
> >
> > org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
> >        at
> >
> > org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImp
> > l.java:610)
> >        at
> >
> > org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
> >        at
> >
> > org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
> >        at
> >
> > org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> >        at
> >
> > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> >        at
> >
> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> >        at java.lang.Thread.run(Thread.java:595)
> >
> > I used to capture the messages TCPMon  and  I discovered that it are not
> > send the SOAPAction from the provider to external webservice.
> > The exception is thrown when trying parse the fault.
> >
> > The request from the client to ESB is:
> >
> >    POST /hello/ HTTP/1.1
> >    Content-Type: text/xml;charset=UTF-8
> >    SOAPAction: "http://tempuri.org/Operation1"
> >    User-Agent: Jakarta Commons-HttpClient/3.0.1
> >    Host: localhost:8082
> >    Content-Length: 424
> >
> >    <soapenv:Envelope xmlns:soapenv="
> > http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="
> > http://tempuri.org/">
> >       <soapenv:Header/>
> >       <soapenv:Body>
> >          <tem:Operation1>
> >             <!--Optional:-->
> >             <tem:aplicacion>app1</tem:aplicacion>
> >             <!--Optional:-->
> >             <tem:usuario>user1</tem:usuario>
> >          </tem:Operation1>
> >       </soapenv:Body>
> >    </soapenv:Envelope>
> >
> >
> > The request from de ESB is:
> >
> >    POST /webservices/hello.asmx HTTP/1.1
> >    Content-Type: text/xml; charset=UTF-8
> >    Accept: *
> >    Cache-Control: no-cache
> >    Pragma: no-cache
> >    User-Agent: Java/1.5.0_09
> >    Host: test.intranet:8085
> >    Connection: keep-alive
> >    Transfer-Encoding: chunked
> >
> >    18a
> >    <soap:Envelope
> > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
> > "><soap:Body><tem:Operation1
> > xmlns:tem="http://tempuri.org/">
> >
> >             <tem:aplicacion xmlns:tem="http://tempuri.org/
> > ">app1</tem:aplicacion>
> >
> >             <tem:usuario xmlns:tem="http://tempuri.org/
> > ">user1</tem:usuario>
> >          </tem:Operation1></soap:Body></soap:Envelope>
> >    0
> >
> > The Response:
> >
> >    HTTP/1.1 500 Internal Server Error.
> >    Date: Wed, 09 Apr 2008 18:56:49 GMT
> >    Server: Microsoft-IIS/6.0
> >    IISExport: This web site was exported using IIS Export v4.1
> >    X-Powered-By: ASP.NET
> >    X-AspNet-Version: 1.1.4322
> >    Cache-Control: private
> >    Content-Type: text/xml; charset=utf-8
> >    Content-Length: 848
> >
> >    <?xml version="1.0" encoding="utf-8"?>
> >    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="
> > http://www.w3.org/2001/XMLSchema">
> >      <soap:Body>
> >        <soap:Fault>
> >          <faultcode>soap:Client</faultcode>
> >          <faultstring>System.Web.Services.Protocols.SoapException:
> > Unable
> > to handle request without a valid action parameter. Please supply a
> > valid
> > soap action.
> >       at
> > System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest()
> >       at System.Web.Services.Protocols.SoapServerProtocol.Initialize()
> >       at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type
> > type, HttpContext context, HttpRequest request, HttpResponse response,
> > Boolean&amp; abortProcessing)</faultstring>
> >          <detail />
> >        </soap:Fault>
> >      </soap:Body>
> >    </soap:Envelope>
> >
> >
> > Regards
> >
> > Esteban
> >
> > On Wed, Apr 9, 2008 at 1:10 PM, antoniofer <an...@dit.upm.es>
> > wrote:
> >
> >
> >
> > > Yes, as suggested in the thread we are using ServiceMix-3.2.2-SNAPSHOT
> > > but
> > > still getting that error :(
> > >
> > >
> > >
> > > gnodet wrote:
> > >
> > >
> > > > Have you tried with 3.2.2-SNAPSHOT ? Lots of issues have been fixed
> > > > in
> > > >
> > > >
> > > the
> > >
> > >
> > > > cxf components afaik.
> > > >
> > > > On Wed, Apr 9, 2008 at 4:32 PM, antoniofer <an...@dit.upm.es>
> > > >
> > > >
> > > wrote:
> > >
> > >
> > > > Hi Esteban, Freeman, Guillaume,
> > > > >
> > > > > I've been following this thread because I was having the same
> > > > > issue
> > > > >
> > > > >
> > > > than
> > >
> > >
> > > > Esteban (SoapAction header) when proxying web services through
> > > > > ServiceMix.
> > > > > I'm getting an exception when the WS client tries to run the WS by
> > > > > connecting to ServiceMix:
> > > > >
> > > > > INFO  - AutoDeploymentService  - Directory: hotdeploy: Finished
> > > > > installation
> > > > > of archive:  wsproxy-cxf-sa.zip <- my SA
> > > > > Apr 9, 2008 4:22:28 PM org.apache.cxf.phase.PhaseInterceptorChain
> > > > > doIntercept
> > > > > INFO: Interceptor has thrown exception, unwinding now
> > > > > java.lang.NullPointerException
> > > > >       at
> > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.processFaultDetail(CxfBcConsumer.java:560)
> > >
> > >
> > > >       at
> > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.handleMessage(CxfBcConsumer.java:518)
> > >
> > >
> > > > ....etc.
> > > > >
> > > > > My xbean.xml (gondor2 is the hostname of ServiceMix server and
> > > > > altair
> > > > >
> > > > >
> > > > is
> > >
> > >
> > > > the
> > > > > hostname where the WebService is running) 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:firma="http://currencyconverter.strast.dit.upm.es">
> > > > >          <cxfbc:consumer
> > > > >
> > > > > wsdl="http://altair:8080/CurrencyConverter/services/EURUSD?wsdl"
> > > > >              service="firma:EURUSDService"
> > > > >              endpoint="EURUSDProxy"
> > > > >              targetEndpoint="EURUSD"
> > > > >              targetService="firma:EURUSDService"
> > > > >              targetInterface="firma:EURUSDSoapBinding"
> > > > >
> > > > > locationURI="http://gondor2:8080/CurrencyConverter/services/EURUSD
> > > > > ">
> > > > >          </cxfbc:consumer>
> > > > >          <cxfbc:provider
> > > > >
> > > > > wsdl="http://altair:8080/CurrencyConverter/services/EURUSD?wsdl"
> > > > >
> > > > > locationURI="http://altair:8080/CurrencyConverter/services/EURUSD"
> > > > >              service="firma:EURUSDService"
> > > > >              endpoint="EURUSD"
> > > > >              interfaceName="firma:EURUSDSoapBinding">
> > > > >          </cxfbc:provider>
> > > > > </beans>
> > > > >
> > > > > I don't know if you need the .wsdl file. I'm not sure if the
> > > > > endpoint,
> > > > > service and interfaceName configuration is right. Perhaps the
> > > > > problem
> > > > >
> > > > >
> > > > is
> > >
> > >
> > > > different. Any suggestions?
> > > > >
> > > > > Thank you very much!
> > > > >
> > > > > Antonio
> > > > >
> > > > >
> > > > > Freeman Fang wrote:
> > > > >
> > > > >
> > > > > > 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
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > --
> > > > > View this message in context:
> > > > >
> > > > >
> > > > >
> > > >
> > > http://www.nabble.com/Take-SOAPAction-from-client%27s-request-tp16407528p16586203.html
> > >
> > >
> > > > Sent from the ServiceMix - User mailing list archive at Nabble.com.
> > > > >
> > > > >
> > > > >
> > > > >
> > > > --
> > > > Cheers,
> > > > Guillaume Nodet
> > > > ------------------------
> > > > Blog: http://gnodet.blogspot.com/
> > > >
> > > >
> > > >
> > > >
> > > --
> > > View this message in context:
> > >
> > > http://www.nabble.com/Take-SOAPAction-from-client%27s-request-tp16407528p16589559.html
> > > Sent from the ServiceMix - User mailing list archive at Nabble.com.
> > >
> > >
> > >
> > >
> >
> >
> >
>
>


-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/

Re: Take SOAPAction from client's request

Posted by Freeman Fang <fr...@gmail.com>.
Hi Esteban,

The exception you see in smx 3.2.1 already get fixed, [1] track this issue.
And now we add SoapActionOutInterceptor by default for cxf bc provider, 
so you needn't add it in your configuratin, [2] track this issue.

[1]http://issues.apache.org/activemq/browse/SM-1159
[2]http://issues.apache.org/activemq/browse/SM-1313

Regards

Freeman

Esteban Forzani wrote:
> Thanks Freeman! It worked!!!
> The xbean.xml  was like this:
>
> <cxfbc:consumer wsdl="classpath:hellopf.wsdl"
>         endpoint="helloPFPort" targetEndpoint="helloPFSoap"
>         targetService="tempuri:helloPF">
>     </cxfbc:consumer>
>     <cxfbc:provider
>         wsdl="http://test.intranet/webservices/hellopf.asmx?WSDL"
>         locationURI="http://test.intranet/webservices/hellopf.asmx"
>         service="tempuri:helloPF" endpoint="helloPFSoap">
>         <cxfbc:outInterceptors>
>             <bean
>
> class="org.apache.cxf.binding.soap.interceptor.SoapActionOutInterceptor" />
>         </cxfbc:outInterceptors>
>     </cxfbc:provider>
>
> The only comment is that in Servicemix-3.2.1 throws the next exception, but
> it works well:
>
>     INFO  [STDOUT] javax.jbi.messaging.MessagingException: Out not supported
>     INFO  [STDOUT]     at
> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:357)
>     INFO  [STDOUT]     at
> org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.onMessage(CxfBcProviderMessageObserver.java:125)
>     INFO  [STDOUT]     at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1932)
>     INFO  [STDOUT]     at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1790)
>     INFO  [STDOUT]     at
> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:166)
>     INFO  [STDOUT]     at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
>     INFO  [STDOUT]     at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
>     INFO  [STDOUT]     at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
>     INFO  [STDOUT]     at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
>     INFO  [STDOUT]     at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
>     INFO  [STDOUT]     at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
>     INFO  [STDOUT]     at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>     INFO  [STDOUT]     at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>     INFO  [STDOUT]     at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>     INFO  [STDOUT]     at java.lang.Thread.run(Thread.java:595)
>
> In servicemix-3.2.2-SNAPSHOT works correctly.
>
> Regards
>
> Esteban
>
>
> On Wed, Apr 9, 2008 at 9:30 PM, Freeman Fang <fr...@gmail.com> wrote:
>
>   
>> Hi Esteban,
>>
>> I forget to mention you need add
>> <cxfbc:outInterceptors>
>>                    <bean
>> class="org.apache.cxf.binding.soap.interceptor.SoapActionOutInterceptor"/>
>>         </cxfbc:outInterceptors>
>> for your cxf bc provider configuration, this interceptor will
>> add soapAction according to the wsdl to your message.
>> Best Regards
>>
>>
>> Freeman
>>
>> Esteban Forzani wrote:
>>
>>     
>>> Hi, I used ServiceMix-3.2.2-SNAPSHOT also, but don't work, throw it the
>>> following exception:
>>>
>>> 09-abr-2008 15:54:32 org.apache.cxf.phase.PhaseInterceptorChain
>>> doIntercept
>>> INFO: Interceptor has thrown exception, unwinding now
>>> java.lang.NullPointerException
>>>        at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown
>>> Source)
>>>        at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown
>>> Source)
>>>        at
>>>
>>> org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleJBIFault(JbiInWsdl1I
>>> nterceptor.java:220)
>>>        at
>>>
>>> org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1In
>>> terceptor.java:142)
>>>        at
>>>
>>> org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1In
>>> terceptor.java:60)
>>>        at
>>>
>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
>>>        at
>>>
>>> org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.onMessage(CxfBcProviderMessageOb
>>> server.java:121)
>>>        at
>>>
>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.
>>> java:1976)
>>>        at
>>>
>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1812
>>> )
>>>        at
>>>
>>> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:200)
>>>        at
>>>
>>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
>>>        at
>>>
>>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:4
>>> 90)
>>>        at
>>>
>>> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
>>>        at
>>>
>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImp
>>> l.java:610)
>>>        at
>>>
>>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>>>        at
>>>
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
>>>        at
>>>
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>>>        at
>>>
>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>>>        at
>>>
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>>>        at java.lang.Thread.run(Thread.java:595)
>>>
>>> I used to capture the messages TCPMon  and  I discovered that it are not
>>> send the SOAPAction from the provider to external webservice.
>>> The exception is thrown when trying parse the fault.
>>>
>>> The request from the client to ESB is:
>>>
>>>    POST /hello/ HTTP/1.1
>>>    Content-Type: text/xml;charset=UTF-8
>>>    SOAPAction: "http://tempuri.org/Operation1"
>>>    User-Agent: Jakarta Commons-HttpClient/3.0.1
>>>    Host: localhost:8082
>>>    Content-Length: 424
>>>
>>>    <soapenv:Envelope xmlns:soapenv="
>>> http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="
>>> http://tempuri.org/">
>>>       <soapenv:Header/>
>>>       <soapenv:Body>
>>>          <tem:Operation1>
>>>             <!--Optional:-->
>>>             <tem:aplicacion>app1</tem:aplicacion>
>>>             <!--Optional:-->
>>>             <tem:usuario>user1</tem:usuario>
>>>          </tem:Operation1>
>>>       </soapenv:Body>
>>>    </soapenv:Envelope>
>>>
>>>
>>> The request from de ESB is:
>>>
>>>    POST /webservices/hello.asmx HTTP/1.1
>>>    Content-Type: text/xml; charset=UTF-8
>>>    Accept: *
>>>    Cache-Control: no-cache
>>>    Pragma: no-cache
>>>    User-Agent: Java/1.5.0_09
>>>    Host: test.intranet:8085
>>>    Connection: keep-alive
>>>    Transfer-Encoding: chunked
>>>
>>>    18a
>>>    <soap:Envelope
>>> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
>>> "><soap:Body><tem:Operation1
>>> xmlns:tem="http://tempuri.org/">
>>>
>>>             <tem:aplicacion xmlns:tem="http://tempuri.org/
>>> ">app1</tem:aplicacion>
>>>
>>>             <tem:usuario xmlns:tem="http://tempuri.org/
>>> ">user1</tem:usuario>
>>>          </tem:Operation1></soap:Body></soap:Envelope>
>>>    0
>>>
>>> The Response:
>>>
>>>    HTTP/1.1 500 Internal Server Error.
>>>    Date: Wed, 09 Apr 2008 18:56:49 GMT
>>>    Server: Microsoft-IIS/6.0
>>>    IISExport: This web site was exported using IIS Export v4.1
>>>    X-Powered-By: ASP.NET
>>>    X-AspNet-Version: 1.1.4322
>>>    Cache-Control: private
>>>    Content-Type: text/xml; charset=utf-8
>>>    Content-Length: 848
>>>
>>>    <?xml version="1.0" encoding="utf-8"?>
>>>    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="
>>> http://www.w3.org/2001/XMLSchema">
>>>      <soap:Body>
>>>        <soap:Fault>
>>>          <faultcode>soap:Client</faultcode>
>>>          <faultstring>System.Web.Services.Protocols.SoapException:
>>> Unable
>>> to handle request without a valid action parameter. Please supply a
>>> valid
>>> soap action.
>>>       at
>>> System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest()
>>>       at System.Web.Services.Protocols.SoapServerProtocol.Initialize()
>>>       at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type
>>> type, HttpContext context, HttpRequest request, HttpResponse response,
>>> Boolean&amp; abortProcessing)</faultstring>
>>>          <detail />
>>>        </soap:Fault>
>>>      </soap:Body>
>>>    </soap:Envelope>
>>>
>>>
>>> Regards
>>>
>>> Esteban
>>>
>>> On Wed, Apr 9, 2008 at 1:10 PM, antoniofer <an...@dit.upm.es>
>>> wrote:
>>>
>>>
>>>
>>>       
>>>> Yes, as suggested in the thread we are using ServiceMix-3.2.2-SNAPSHOT
>>>> but
>>>> still getting that error :(
>>>>
>>>>
>>>>
>>>> gnodet wrote:
>>>>
>>>>
>>>>         
>>>>> Have you tried with 3.2.2-SNAPSHOT ? Lots of issues have been fixed
>>>>> in
>>>>>
>>>>>
>>>>>           
>>>> the
>>>>
>>>>
>>>>         
>>>>> cxf components afaik.
>>>>>
>>>>> On Wed, Apr 9, 2008 at 4:32 PM, antoniofer <an...@dit.upm.es>
>>>>>
>>>>>
>>>>>           
>>>> wrote:
>>>>
>>>>
>>>>         
>>>>> Hi Esteban, Freeman, Guillaume,
>>>>>           
>>>>>> I've been following this thread because I was having the same
>>>>>> issue
>>>>>>
>>>>>>
>>>>>>             
>>>>> than
>>>>>           
>>>>         
>>>>> Esteban (SoapAction header) when proxying web services through
>>>>>           
>>>>>> ServiceMix.
>>>>>> I'm getting an exception when the WS client tries to run the WS by
>>>>>> connecting to ServiceMix:
>>>>>>
>>>>>> INFO  - AutoDeploymentService  - Directory: hotdeploy: Finished
>>>>>> installation
>>>>>> of archive:  wsproxy-cxf-sa.zip <- my SA
>>>>>> Apr 9, 2008 4:22:28 PM org.apache.cxf.phase.PhaseInterceptorChain
>>>>>> doIntercept
>>>>>> INFO: Interceptor has thrown exception, unwinding now
>>>>>> java.lang.NullPointerException
>>>>>>       at
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>> org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.processFaultDetail(CxfBcConsumer.java:560)
>>>>
>>>>
>>>>         
>>>>>       at
>>>>>           
>>>>>>
>>>>>>
>>>>>>             
>>>> org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.handleMessage(CxfBcConsumer.java:518)
>>>>
>>>>
>>>>         
>>>>> ....etc.
>>>>>           
>>>>>> My xbean.xml (gondor2 is the hostname of ServiceMix server and
>>>>>> altair
>>>>>>
>>>>>>
>>>>>>             
>>>>> is
>>>>>           
>>>>         
>>>>> the
>>>>>           
>>>>>> hostname where the WebService is running) 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:firma="http://currencyconverter.strast.dit.upm.es">
>>>>>>          <cxfbc:consumer
>>>>>>
>>>>>> wsdl="http://altair:8080/CurrencyConverter/services/EURUSD?wsdl"
>>>>>>              service="firma:EURUSDService"
>>>>>>              endpoint="EURUSDProxy"
>>>>>>              targetEndpoint="EURUSD"
>>>>>>              targetService="firma:EURUSDService"
>>>>>>              targetInterface="firma:EURUSDSoapBinding"
>>>>>>
>>>>>> locationURI="http://gondor2:8080/CurrencyConverter/services/EURUSD
>>>>>> ">
>>>>>>          </cxfbc:consumer>
>>>>>>          <cxfbc:provider
>>>>>>
>>>>>> wsdl="http://altair:8080/CurrencyConverter/services/EURUSD?wsdl"
>>>>>>
>>>>>> locationURI="http://altair:8080/CurrencyConverter/services/EURUSD"
>>>>>>              service="firma:EURUSDService"
>>>>>>              endpoint="EURUSD"
>>>>>>              interfaceName="firma:EURUSDSoapBinding">
>>>>>>          </cxfbc:provider>
>>>>>> </beans>
>>>>>>
>>>>>> I don't know if you need the .wsdl file. I'm not sure if the
>>>>>> endpoint,
>>>>>> service and interfaceName configuration is right. Perhaps the
>>>>>> problem
>>>>>>
>>>>>>
>>>>>>             
>>>>> is
>>>>>           
>>>>         
>>>>> different. Any suggestions?
>>>>>           
>>>>>> Thank you very much!
>>>>>>
>>>>>> Antonio
>>>>>>
>>>>>>
>>>>>> Freeman Fang wrote:
>>>>>>
>>>>>>
>>>>>>             
>>>>>>> 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
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>                                 
>>>>>>>>>>>>>>                             
>>>>>>>>>>>>                         
>>>>>>>>>>                     
>>>>>>>>                 
>>>>>>>
>>>>>>>               
>>>>>> --
>>>>>> View this message in context:
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>> http://www.nabble.com/Take-SOAPAction-from-client%27s-request-tp16407528p16586203.html
>>>>
>>>>
>>>>         
>>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>>           
>>>>>>
>>>>>>
>>>>>>             
>>>>> --
>>>>> Cheers,
>>>>> Guillaume Nodet
>>>>> ------------------------
>>>>> Blog: http://gnodet.blogspot.com/
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>           
>>>> --
>>>> View this message in context:
>>>>
>>>> http://www.nabble.com/Take-SOAPAction-from-client%27s-request-tp16407528p16589559.html
>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>
>>>>
>>>>
>>>>
>>>>         
>>>
>>>       
>>   <http://qtl.co.il/aff> <http://qtl.co.il><http://search.babylon.com/web/%0D%0A%0D%0A%0D%0A--%20%0D%0AEsteban%20Forzani?babsrc=qtl><http://search.yahoo.com/search?p=%0D%0A%0D%0A%0D%0A--%20%0D%0AEsteban%20Forzani><http://www.flickr.com/search/?q=%0D%0A%0D%0A%0D%0A--%20%0D%0AEsteban%20Forzani><http://www.youtube.com/results?search_query=%0D%0A%0D%0A%0D%0A--%20%0D%0AEsteban%20Forzani&amp;search=Search>
>>
>>     
>
>   


Re: Take SOAPAction from client's request

Posted by Esteban Forzani <ef...@gmail.com>.
Thanks Freeman! It worked!!!
The xbean.xml  was like this:

<cxfbc:consumer wsdl="classpath:hellopf.wsdl"
        endpoint="helloPFPort" targetEndpoint="helloPFSoap"
        targetService="tempuri:helloPF">
    </cxfbc:consumer>
    <cxfbc:provider
        wsdl="http://test.intranet/webservices/hellopf.asmx?WSDL"
        locationURI="http://test.intranet/webservices/hellopf.asmx"
        service="tempuri:helloPF" endpoint="helloPFSoap">
        <cxfbc:outInterceptors>
            <bean

class="org.apache.cxf.binding.soap.interceptor.SoapActionOutInterceptor" />
        </cxfbc:outInterceptors>
    </cxfbc:provider>

The only comment is that in Servicemix-3.2.1 throws the next exception, but
it works well:

    INFO  [STDOUT] javax.jbi.messaging.MessagingException: Out not supported
    INFO  [STDOUT]     at
org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:357)
    INFO  [STDOUT]     at
org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.onMessage(CxfBcProviderMessageObserver.java:125)
    INFO  [STDOUT]     at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1932)
    INFO  [STDOUT]     at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1790)
    INFO  [STDOUT]     at
org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:166)
    INFO  [STDOUT]     at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
    INFO  [STDOUT]     at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
    INFO  [STDOUT]     at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
    INFO  [STDOUT]     at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
    INFO  [STDOUT]     at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
    INFO  [STDOUT]     at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
    INFO  [STDOUT]     at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
    INFO  [STDOUT]     at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
    INFO  [STDOUT]     at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
    INFO  [STDOUT]     at java.lang.Thread.run(Thread.java:595)

In servicemix-3.2.2-SNAPSHOT works correctly.

Regards

Esteban


On Wed, Apr 9, 2008 at 9:30 PM, Freeman Fang <fr...@gmail.com> wrote:

> Hi Esteban,
>
> I forget to mention you need add
> <cxfbc:outInterceptors>
>                    <bean
> class="org.apache.cxf.binding.soap.interceptor.SoapActionOutInterceptor"/>
>         </cxfbc:outInterceptors>
> for your cxf bc provider configuration, this interceptor will
> add soapAction according to the wsdl to your message.
> Best Regards
>
>
> Freeman
>
> Esteban Forzani wrote:
>
> > Hi, I used ServiceMix-3.2.2-SNAPSHOT also, but don't work, throw it the
> > following exception:
> >
> > 09-abr-2008 15:54:32 org.apache.cxf.phase.PhaseInterceptorChain
> > doIntercept
> > INFO: Interceptor has thrown exception, unwinding now
> > java.lang.NullPointerException
> >        at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown
> > Source)
> >        at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown
> > Source)
> >        at
> >
> > org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleJBIFault(JbiInWsdl1I
> > nterceptor.java:220)
> >        at
> >
> > org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1In
> > terceptor.java:142)
> >        at
> >
> > org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1In
> > terceptor.java:60)
> >        at
> >
> > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
> >        at
> >
> > org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.onMessage(CxfBcProviderMessageOb
> > server.java:121)
> >        at
> >
> > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.
> > java:1976)
> >        at
> >
> > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1812
> > )
> >        at
> >
> > org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:200)
> >        at
> >
> > org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
> >        at
> >
> > org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:4
> > 90)
> >        at
> >
> > org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
> >        at
> >
> > org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImp
> > l.java:610)
> >        at
> >
> > org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
> >        at
> >
> > org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
> >        at
> >
> > org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> >        at
> >
> > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> >        at
> >
> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> >        at java.lang.Thread.run(Thread.java:595)
> >
> > I used to capture the messages TCPMon  and  I discovered that it are not
> > send the SOAPAction from the provider to external webservice.
> > The exception is thrown when trying parse the fault.
> >
> > The request from the client to ESB is:
> >
> >    POST /hello/ HTTP/1.1
> >    Content-Type: text/xml;charset=UTF-8
> >    SOAPAction: "http://tempuri.org/Operation1"
> >    User-Agent: Jakarta Commons-HttpClient/3.0.1
> >    Host: localhost:8082
> >    Content-Length: 424
> >
> >    <soapenv:Envelope xmlns:soapenv="
> > http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="
> > http://tempuri.org/">
> >       <soapenv:Header/>
> >       <soapenv:Body>
> >          <tem:Operation1>
> >             <!--Optional:-->
> >             <tem:aplicacion>app1</tem:aplicacion>
> >             <!--Optional:-->
> >             <tem:usuario>user1</tem:usuario>
> >          </tem:Operation1>
> >       </soapenv:Body>
> >    </soapenv:Envelope>
> >
> >
> > The request from de ESB is:
> >
> >    POST /webservices/hello.asmx HTTP/1.1
> >    Content-Type: text/xml; charset=UTF-8
> >    Accept: *
> >    Cache-Control: no-cache
> >    Pragma: no-cache
> >    User-Agent: Java/1.5.0_09
> >    Host: test.intranet:8085
> >    Connection: keep-alive
> >    Transfer-Encoding: chunked
> >
> >    18a
> >    <soap:Envelope
> > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
> > "><soap:Body><tem:Operation1
> > xmlns:tem="http://tempuri.org/">
> >
> >             <tem:aplicacion xmlns:tem="http://tempuri.org/
> > ">app1</tem:aplicacion>
> >
> >             <tem:usuario xmlns:tem="http://tempuri.org/
> > ">user1</tem:usuario>
> >          </tem:Operation1></soap:Body></soap:Envelope>
> >    0
> >
> > The Response:
> >
> >    HTTP/1.1 500 Internal Server Error.
> >    Date: Wed, 09 Apr 2008 18:56:49 GMT
> >    Server: Microsoft-IIS/6.0
> >    IISExport: This web site was exported using IIS Export v4.1
> >    X-Powered-By: ASP.NET
> >    X-AspNet-Version: 1.1.4322
> >    Cache-Control: private
> >    Content-Type: text/xml; charset=utf-8
> >    Content-Length: 848
> >
> >    <?xml version="1.0" encoding="utf-8"?>
> >    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="
> > http://www.w3.org/2001/XMLSchema">
> >      <soap:Body>
> >        <soap:Fault>
> >          <faultcode>soap:Client</faultcode>
> >          <faultstring>System.Web.Services.Protocols.SoapException:
> > Unable
> > to handle request without a valid action parameter. Please supply a
> > valid
> > soap action.
> >       at
> > System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest()
> >       at System.Web.Services.Protocols.SoapServerProtocol.Initialize()
> >       at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type
> > type, HttpContext context, HttpRequest request, HttpResponse response,
> > Boolean&amp; abortProcessing)</faultstring>
> >          <detail />
> >        </soap:Fault>
> >      </soap:Body>
> >    </soap:Envelope>
> >
> >
> > Regards
> >
> > Esteban
> >
> > On Wed, Apr 9, 2008 at 1:10 PM, antoniofer <an...@dit.upm.es>
> > wrote:
> >
> >
> >
> > > Yes, as suggested in the thread we are using ServiceMix-3.2.2-SNAPSHOT
> > > but
> > > still getting that error :(
> > >
> > >
> > >
> > > gnodet wrote:
> > >
> > >
> > > > Have you tried with 3.2.2-SNAPSHOT ? Lots of issues have been fixed
> > > > in
> > > >
> > > >
> > > the
> > >
> > >
> > > > cxf components afaik.
> > > >
> > > > On Wed, Apr 9, 2008 at 4:32 PM, antoniofer <an...@dit.upm.es>
> > > >
> > > >
> > > wrote:
> > >
> > >
> > > > Hi Esteban, Freeman, Guillaume,
> > > > >
> > > > > I've been following this thread because I was having the same
> > > > > issue
> > > > >
> > > > >
> > > > than
> > >
> > >
> > > > Esteban (SoapAction header) when proxying web services through
> > > > > ServiceMix.
> > > > > I'm getting an exception when the WS client tries to run the WS by
> > > > > connecting to ServiceMix:
> > > > >
> > > > > INFO  - AutoDeploymentService  - Directory: hotdeploy: Finished
> > > > > installation
> > > > > of archive:  wsproxy-cxf-sa.zip <- my SA
> > > > > Apr 9, 2008 4:22:28 PM org.apache.cxf.phase.PhaseInterceptorChain
> > > > > doIntercept
> > > > > INFO: Interceptor has thrown exception, unwinding now
> > > > > java.lang.NullPointerException
> > > > >       at
> > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.processFaultDetail(CxfBcConsumer.java:560)
> > >
> > >
> > > >       at
> > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.handleMessage(CxfBcConsumer.java:518)
> > >
> > >
> > > > ....etc.
> > > > >
> > > > > My xbean.xml (gondor2 is the hostname of ServiceMix server and
> > > > > altair
> > > > >
> > > > >
> > > > is
> > >
> > >
> > > > the
> > > > > hostname where the WebService is running) 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:firma="http://currencyconverter.strast.dit.upm.es">
> > > > >          <cxfbc:consumer
> > > > >
> > > > > wsdl="http://altair:8080/CurrencyConverter/services/EURUSD?wsdl"
> > > > >              service="firma:EURUSDService"
> > > > >              endpoint="EURUSDProxy"
> > > > >              targetEndpoint="EURUSD"
> > > > >              targetService="firma:EURUSDService"
> > > > >              targetInterface="firma:EURUSDSoapBinding"
> > > > >
> > > > > locationURI="http://gondor2:8080/CurrencyConverter/services/EURUSD
> > > > > ">
> > > > >          </cxfbc:consumer>
> > > > >          <cxfbc:provider
> > > > >
> > > > > wsdl="http://altair:8080/CurrencyConverter/services/EURUSD?wsdl"
> > > > >
> > > > > locationURI="http://altair:8080/CurrencyConverter/services/EURUSD"
> > > > >              service="firma:EURUSDService"
> > > > >              endpoint="EURUSD"
> > > > >              interfaceName="firma:EURUSDSoapBinding">
> > > > >          </cxfbc:provider>
> > > > > </beans>
> > > > >
> > > > > I don't know if you need the .wsdl file. I'm not sure if the
> > > > > endpoint,
> > > > > service and interfaceName configuration is right. Perhaps the
> > > > > problem
> > > > >
> > > > >
> > > > is
> > >
> > >
> > > > different. Any suggestions?
> > > > >
> > > > > Thank you very much!
> > > > >
> > > > > Antonio
> > > > >
> > > > >
> > > > > Freeman Fang wrote:
> > > > >
> > > > >
> > > > > > 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
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > --
> > > > > View this message in context:
> > > > >
> > > > >
> > > > >
> > > >
> > > http://www.nabble.com/Take-SOAPAction-from-client%27s-request-tp16407528p16586203.html
> > >
> > >
> > > > Sent from the ServiceMix - User mailing list archive at Nabble.com.
> > > > >
> > > > >
> > > > >
> > > > >
> > > > --
> > > > Cheers,
> > > > Guillaume Nodet
> > > > ------------------------
> > > > Blog: http://gnodet.blogspot.com/
> > > >
> > > >
> > > >
> > > >
> > > --
> > > View this message in context:
> > >
> > > http://www.nabble.com/Take-SOAPAction-from-client%27s-request-tp16407528p16589559.html
> > > Sent from the ServiceMix - User mailing list archive at Nabble.com.
> > >
> > >
> > >
> > >
> >
> >
> >
>   <http://qtl.co.il/aff> <http://qtl.co.il><http://search.babylon.com/web/%0D%0A%0D%0A%0D%0A--%20%0D%0AEsteban%20Forzani?babsrc=qtl><http://search.yahoo.com/search?p=%0D%0A%0D%0A%0D%0A--%20%0D%0AEsteban%20Forzani><http://www.flickr.com/search/?q=%0D%0A%0D%0A%0D%0A--%20%0D%0AEsteban%20Forzani><http://www.youtube.com/results?search_query=%0D%0A%0D%0A%0D%0A--%20%0D%0AEsteban%20Forzani&amp;search=Search>
>

Re: Take SOAPAction from client's request

Posted by Freeman Fang <fr...@gmail.com>.
Hi Esteban,

I forget to mention you need add
<cxfbc:outInterceptors>
                     <bean 
class="org.apache.cxf.binding.soap.interceptor.SoapActionOutInterceptor"/>
          </cxfbc:outInterceptors>
for your cxf bc provider configuration, this interceptor will
add soapAction according to the wsdl to your message.
Best Regards

Freeman

Esteban Forzani wrote:
> Hi, I used ServiceMix-3.2.2-SNAPSHOT also, but don't work, throw it the
> following exception:
>
> 09-abr-2008 15:54:32 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> java.lang.NullPointerException
>         at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown Source)
>         at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown Source)
>         at
> org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleJBIFault(JbiInWsdl1I
> nterceptor.java:220)
>         at
> org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1In
> terceptor.java:142)
>         at
> org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1In
> terceptor.java:60)
>         at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
>         at
> org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.onMessage(CxfBcProviderMessageOb
> server.java:121)
>         at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.
> java:1976)
>         at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1812
> )
>         at
> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:200)
>         at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
>         at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:4
> 90)
>         at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImp
> l.java:610)
>         at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>         at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
>         at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>         at java.lang.Thread.run(Thread.java:595)
>
> I used to capture the messages TCPMon  and  I discovered that it are not
> send the SOAPAction from the provider to external webservice.
> The exception is thrown when trying parse the fault.
>
> The request from the client to ESB is:
>
>     POST /hello/ HTTP/1.1
>     Content-Type: text/xml;charset=UTF-8
>     SOAPAction: "http://tempuri.org/Operation1"
>     User-Agent: Jakarta Commons-HttpClient/3.0.1
>     Host: localhost:8082
>     Content-Length: 424
>
>     <soapenv:Envelope xmlns:soapenv="
> http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
>        <soapenv:Header/>
>        <soapenv:Body>
>           <tem:Operation1>
>              <!--Optional:-->
>              <tem:aplicacion>app1</tem:aplicacion>
>              <!--Optional:-->
>              <tem:usuario>user1</tem:usuario>
>           </tem:Operation1>
>        </soapenv:Body>
>     </soapenv:Envelope>
>
>
> The request from de ESB is:
>
>     POST /webservices/hello.asmx HTTP/1.1
>     Content-Type: text/xml; charset=UTF-8
>     Accept: *
>     Cache-Control: no-cache
>     Pragma: no-cache
>     User-Agent: Java/1.5.0_09
>     Host: test.intranet:8085
>     Connection: keep-alive
>     Transfer-Encoding: chunked
>
>     18a
>     <soap:Envelope
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><tem:Operation1
> xmlns:tem="http://tempuri.org/">
>
>              <tem:aplicacion xmlns:tem="http://tempuri.org/
> ">app1</tem:aplicacion>
>
>              <tem:usuario xmlns:tem="http://tempuri.org/
> ">user1</tem:usuario>
>           </tem:Operation1></soap:Body></soap:Envelope>
>     0
>
> The Response:
>
>     HTTP/1.1 500 Internal Server Error.
>     Date: Wed, 09 Apr 2008 18:56:49 GMT
>     Server: Microsoft-IIS/6.0
>     IISExport: This web site was exported using IIS Export v4.1
>     X-Powered-By: ASP.NET
>     X-AspNet-Version: 1.1.4322
>     Cache-Control: private
>     Content-Type: text/xml; charset=utf-8
>     Content-Length: 848
>
>     <?xml version="1.0" encoding="utf-8"?>
>     <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="
> http://www.w3.org/2001/XMLSchema">
>       <soap:Body>
>         <soap:Fault>
>           <faultcode>soap:Client</faultcode>
>           <faultstring>System.Web.Services.Protocols.SoapException: Unable
> to handle request without a valid action parameter. Please supply a valid
> soap action.
>        at
> System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest()
>        at System.Web.Services.Protocols.SoapServerProtocol.Initialize()
>        at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type
> type, HttpContext context, HttpRequest request, HttpResponse response,
> Boolean&amp; abortProcessing)</faultstring>
>           <detail />
>         </soap:Fault>
>       </soap:Body>
>     </soap:Envelope>
>
>
> Regards
>
> Esteban
>
> On Wed, Apr 9, 2008 at 1:10 PM, antoniofer <an...@dit.upm.es> wrote:
>
>   
>> Yes, as suggested in the thread we are using ServiceMix-3.2.2-SNAPSHOT but
>> still getting that error :(
>>
>>
>>
>> gnodet wrote:
>>     
>>> Have you tried with 3.2.2-SNAPSHOT ? Lots of issues have been fixed in
>>>       
>> the
>>     
>>> cxf components afaik.
>>>
>>> On Wed, Apr 9, 2008 at 4:32 PM, antoniofer <an...@dit.upm.es>
>>>       
>> wrote:
>>     
>>>> Hi Esteban, Freeman, Guillaume,
>>>>
>>>> I've been following this thread because I was having the same issue
>>>>         
>> than
>>     
>>>> Esteban (SoapAction header) when proxying web services through
>>>> ServiceMix.
>>>> I'm getting an exception when the WS client tries to run the WS by
>>>> connecting to ServiceMix:
>>>>
>>>> INFO  - AutoDeploymentService  - Directory: hotdeploy: Finished
>>>> installation
>>>> of archive:  wsproxy-cxf-sa.zip <- my SA
>>>> Apr 9, 2008 4:22:28 PM org.apache.cxf.phase.PhaseInterceptorChain
>>>> doIntercept
>>>> INFO: Interceptor has thrown exception, unwinding now
>>>> java.lang.NullPointerException
>>>>        at
>>>>
>>>>
>>>>         
>> org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.processFaultDetail(CxfBcConsumer.java:560)
>>     
>>>>        at
>>>>
>>>>
>>>>         
>> org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.handleMessage(CxfBcConsumer.java:518)
>>     
>>>> ....etc.
>>>>
>>>> My xbean.xml (gondor2 is the hostname of ServiceMix server and altair
>>>>         
>> is
>>     
>>>> the
>>>> hostname where the WebService is running) 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:firma="http://currencyconverter.strast.dit.upm.es">
>>>>           <cxfbc:consumer
>>>>
>>>> wsdl="http://altair:8080/CurrencyConverter/services/EURUSD?wsdl"
>>>>               service="firma:EURUSDService"
>>>>               endpoint="EURUSDProxy"
>>>>               targetEndpoint="EURUSD"
>>>>               targetService="firma:EURUSDService"
>>>>               targetInterface="firma:EURUSDSoapBinding"
>>>>
>>>> locationURI="http://gondor2:8080/CurrencyConverter/services/EURUSD">
>>>>           </cxfbc:consumer>
>>>>           <cxfbc:provider
>>>>
>>>> wsdl="http://altair:8080/CurrencyConverter/services/EURUSD?wsdl"
>>>>
>>>> locationURI="http://altair:8080/CurrencyConverter/services/EURUSD"
>>>>               service="firma:EURUSDService"
>>>>               endpoint="EURUSD"
>>>>               interfaceName="firma:EURUSDSoapBinding">
>>>>           </cxfbc:provider>
>>>> </beans>
>>>>
>>>> I don't know if you need the .wsdl file. I'm not sure if the endpoint,
>>>> service and interfaceName configuration is right. Perhaps the problem
>>>>         
>> is
>>     
>>>> different. Any suggestions?
>>>>
>>>> Thank you very much!
>>>>
>>>> Antonio
>>>>
>>>>
>>>> Freeman Fang wrote:
>>>>         
>>>>> 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
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>                             
>>>>>>>>>>>>
>>>>>>>>>>>>                         
>>>>>>>>>>
>>>>>>>>>>                     
>>>>>>>>
>>>>>>>>                 
>>>>>>
>>>>>>             
>>>>>
>>>>>           
>>>> --
>>>> View this message in context:
>>>>
>>>>         
>> http://www.nabble.com/Take-SOAPAction-from-client%27s-request-tp16407528p16586203.html
>>     
>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>
>>>>
>>>>         
>>> --
>>> Cheers,
>>> Guillaume Nodet
>>> ------------------------
>>> Blog: http://gnodet.blogspot.com/
>>>
>>>
>>>       
>> --
>> View this message in context:
>> http://www.nabble.com/Take-SOAPAction-from-client%27s-request-tp16407528p16589559.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
>>     
>
>   


Re: Take SOAPAction from client's request

Posted by Esteban Forzani <ef...@gmail.com>.
Hi, I used ServiceMix-3.2.2-SNAPSHOT also, but don't work, throw it the
following exception:

09-abr-2008 15:54:32 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
INFO: Interceptor has thrown exception, unwinding now
java.lang.NullPointerException
        at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown Source)
        at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown Source)
        at
org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleJBIFault(JbiInWsdl1I
nterceptor.java:220)
        at
org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1In
terceptor.java:142)
        at
org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1In
terceptor.java:60)
        at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
        at
org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.onMessage(CxfBcProviderMessageOb
server.java:121)
        at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.
java:1976)
        at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1812
)
        at
org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:200)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:4
90)
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImp
l.java:610)
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:595)

I used to capture the messages TCPMon  and  I discovered that it are not
send the SOAPAction from the provider to external webservice.
The exception is thrown when trying parse the fault.

The request from the client to ESB is:

    POST /hello/ HTTP/1.1
    Content-Type: text/xml;charset=UTF-8
    SOAPAction: "http://tempuri.org/Operation1"
    User-Agent: Jakarta Commons-HttpClient/3.0.1
    Host: localhost:8082
    Content-Length: 424

    <soapenv:Envelope xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
       <soapenv:Header/>
       <soapenv:Body>
          <tem:Operation1>
             <!--Optional:-->
             <tem:aplicacion>app1</tem:aplicacion>
             <!--Optional:-->
             <tem:usuario>user1</tem:usuario>
          </tem:Operation1>
       </soapenv:Body>
    </soapenv:Envelope>


The request from de ESB is:

    POST /webservices/hello.asmx HTTP/1.1
    Content-Type: text/xml; charset=UTF-8
    Accept: *
    Cache-Control: no-cache
    Pragma: no-cache
    User-Agent: Java/1.5.0_09
    Host: test.intranet:8085
    Connection: keep-alive
    Transfer-Encoding: chunked

    18a
    <soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><tem:Operation1
xmlns:tem="http://tempuri.org/">

             <tem:aplicacion xmlns:tem="http://tempuri.org/
">app1</tem:aplicacion>

             <tem:usuario xmlns:tem="http://tempuri.org/
">user1</tem:usuario>
          </tem:Operation1></soap:Body></soap:Envelope>
    0

The Response:

    HTTP/1.1 500 Internal Server Error.
    Date: Wed, 09 Apr 2008 18:56:49 GMT
    Server: Microsoft-IIS/6.0
    IISExport: This web site was exported using IIS Export v4.1
    X-Powered-By: ASP.NET
    X-AspNet-Version: 1.1.4322
    Cache-Control: private
    Content-Type: text/xml; charset=utf-8
    Content-Length: 848

    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="
http://www.w3.org/2001/XMLSchema">
      <soap:Body>
        <soap:Fault>
          <faultcode>soap:Client</faultcode>
          <faultstring>System.Web.Services.Protocols.SoapException: Unable
to handle request without a valid action parameter. Please supply a valid
soap action.
       at
System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest()
       at System.Web.Services.Protocols.SoapServerProtocol.Initialize()
       at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type
type, HttpContext context, HttpRequest request, HttpResponse response,
Boolean&amp; abortProcessing)</faultstring>
          <detail />
        </soap:Fault>
      </soap:Body>
    </soap:Envelope>


Regards

Esteban

On Wed, Apr 9, 2008 at 1:10 PM, antoniofer <an...@dit.upm.es> wrote:

>
> Yes, as suggested in the thread we are using ServiceMix-3.2.2-SNAPSHOT but
> still getting that error :(
>
>
>
> gnodet wrote:
> >
> > Have you tried with 3.2.2-SNAPSHOT ? Lots of issues have been fixed in
> the
> > cxf components afaik.
> >
> > On Wed, Apr 9, 2008 at 4:32 PM, antoniofer <an...@dit.upm.es>
> wrote:
> >
> >>
> >> Hi Esteban, Freeman, Guillaume,
> >>
> >> I've been following this thread because I was having the same issue
> than
> >> Esteban (SoapAction header) when proxying web services through
> >> ServiceMix.
> >> I'm getting an exception when the WS client tries to run the WS by
> >> connecting to ServiceMix:
> >>
> >> INFO  - AutoDeploymentService  - Directory: hotdeploy: Finished
> >> installation
> >> of archive:  wsproxy-cxf-sa.zip <- my SA
> >> Apr 9, 2008 4:22:28 PM org.apache.cxf.phase.PhaseInterceptorChain
> >> doIntercept
> >> INFO: Interceptor has thrown exception, unwinding now
> >> java.lang.NullPointerException
> >>        at
> >>
> >>
> org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.processFaultDetail(CxfBcConsumer.java:560)
> >>        at
> >>
> >>
> org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.handleMessage(CxfBcConsumer.java:518)
> >> ....etc.
> >>
> >> My xbean.xml (gondor2 is the hostname of ServiceMix server and altair
> is
> >> the
> >> hostname where the WebService is running) 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:firma="http://currencyconverter.strast.dit.upm.es">
> >>           <cxfbc:consumer
> >>
> >> wsdl="http://altair:8080/CurrencyConverter/services/EURUSD?wsdl"
> >>               service="firma:EURUSDService"
> >>               endpoint="EURUSDProxy"
> >>               targetEndpoint="EURUSD"
> >>               targetService="firma:EURUSDService"
> >>               targetInterface="firma:EURUSDSoapBinding"
> >>
> >> locationURI="http://gondor2:8080/CurrencyConverter/services/EURUSD">
> >>           </cxfbc:consumer>
> >>           <cxfbc:provider
> >>
> >> wsdl="http://altair:8080/CurrencyConverter/services/EURUSD?wsdl"
> >>
> >> locationURI="http://altair:8080/CurrencyConverter/services/EURUSD"
> >>               service="firma:EURUSDService"
> >>               endpoint="EURUSD"
> >>               interfaceName="firma:EURUSDSoapBinding">
> >>           </cxfbc:provider>
> >> </beans>
> >>
> >> I don't know if you need the .wsdl file. I'm not sure if the endpoint,
> >> service and interfaceName configuration is right. Perhaps the problem
> is
> >> different. Any suggestions?
> >>
> >> Thank you very much!
> >>
> >> Antonio
> >>
> >>
> >> Freeman Fang wrote:
> >> >
> >> > 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
> >> >>>>>>>>>>
> >> >>>>>>>>>>
> >> >>>>>>>>>>
> >> >>>>>>>>>>
> >> >>>>>>>>>>
> >> >>>>>>>>>>
> >> >>>>>>>>>>
> >> >>>>>>>>>>
> >> >>>>>>>>>>
> >> >>>>>>>>>>
> >> >>>>>>>>>
> >> >>>>>>>>
> >> >>>>>>>>
> >> >>>>>>>>
> >> >>>>>>>
> >> >>>>>>
> >> >>>>>>
> >> >>>>>>
> >> >>>>>
> >> >>>>
> >> >>>>
> >> >>>>
> >> >>>
> >> >>
> >> >>
> >> >>
> >> >
> >> >
> >> >
> >>
> >> --
> >> View this message in context:
> >>
> http://www.nabble.com/Take-SOAPAction-from-client%27s-request-tp16407528p16586203.html
> >> Sent from the ServiceMix - User mailing list archive at Nabble.com.
> >>
> >>
> >
> >
> > --
> > Cheers,
> > Guillaume Nodet
> > ------------------------
> > Blog: http://gnodet.blogspot.com/
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Take-SOAPAction-from-client%27s-request-tp16407528p16589559.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>

Re: Take SOAPAction from client's request

Posted by antoniofer <an...@dit.upm.es>.
Yes, as suggested in the thread we are using ServiceMix-3.2.2-SNAPSHOT but
still getting that error :(



gnodet wrote:
> 
> Have you tried with 3.2.2-SNAPSHOT ? Lots of issues have been fixed in the
> cxf components afaik.
> 
> On Wed, Apr 9, 2008 at 4:32 PM, antoniofer <an...@dit.upm.es> wrote:
> 
>>
>> Hi Esteban, Freeman, Guillaume,
>>
>> I've been following this thread because I was having the same issue than
>> Esteban (SoapAction header) when proxying web services through
>> ServiceMix.
>> I'm getting an exception when the WS client tries to run the WS by
>> connecting to ServiceMix:
>>
>> INFO  - AutoDeploymentService  - Directory: hotdeploy: Finished
>> installation
>> of archive:  wsproxy-cxf-sa.zip <- my SA
>> Apr 9, 2008 4:22:28 PM org.apache.cxf.phase.PhaseInterceptorChain
>> doIntercept
>> INFO: Interceptor has thrown exception, unwinding now
>> java.lang.NullPointerException
>>        at
>>
>> org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.processFaultDetail(CxfBcConsumer.java:560)
>>        at
>>
>> org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.handleMessage(CxfBcConsumer.java:518)
>> ....etc.
>>
>> My xbean.xml (gondor2 is the hostname of ServiceMix server and altair is
>> the
>> hostname where the WebService is running) 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:firma="http://currencyconverter.strast.dit.upm.es">
>>           <cxfbc:consumer
>>
>> wsdl="http://altair:8080/CurrencyConverter/services/EURUSD?wsdl"
>>               service="firma:EURUSDService"
>>               endpoint="EURUSDProxy"
>>               targetEndpoint="EURUSD"
>>               targetService="firma:EURUSDService"
>>               targetInterface="firma:EURUSDSoapBinding"
>>
>> locationURI="http://gondor2:8080/CurrencyConverter/services/EURUSD">
>>           </cxfbc:consumer>
>>           <cxfbc:provider
>>
>> wsdl="http://altair:8080/CurrencyConverter/services/EURUSD?wsdl"
>>
>> locationURI="http://altair:8080/CurrencyConverter/services/EURUSD"
>>               service="firma:EURUSDService"
>>               endpoint="EURUSD"
>>               interfaceName="firma:EURUSDSoapBinding">
>>           </cxfbc:provider>
>> </beans>
>>
>> I don't know if you need the .wsdl file. I'm not sure if the endpoint,
>> service and interfaceName configuration is right. Perhaps the problem is
>> different. Any suggestions?
>>
>> Thank you very much!
>>
>> Antonio
>>
>>
>> Freeman Fang wrote:
>> >
>> > 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 <fr...@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
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>
>> >>
>> >>
>> >>
>> >
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Take-SOAPAction-from-client%27s-request-tp16407528p16586203.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> -- 
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> 
> 

-- 
View this message in context: http://www.nabble.com/Take-SOAPAction-from-client%27s-request-tp16407528p16589559.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Take SOAPAction from client's request

Posted by Guillaume Nodet <gn...@gmail.com>.
Have you tried with 3.2.2-SNAPSHOT ? Lots of issues have been fixed in the
cxf components afaik.

On Wed, Apr 9, 2008 at 4:32 PM, antoniofer <an...@dit.upm.es> wrote:

>
> Hi Esteban, Freeman, Guillaume,
>
> I've been following this thread because I was having the same issue than
> Esteban (SoapAction header) when proxying web services through ServiceMix.
> I'm getting an exception when the WS client tries to run the WS by
> connecting to ServiceMix:
>
> INFO  - AutoDeploymentService  - Directory: hotdeploy: Finished
> installation
> of archive:  wsproxy-cxf-sa.zip <- my SA
> Apr 9, 2008 4:22:28 PM org.apache.cxf.phase.PhaseInterceptorChain
> doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> java.lang.NullPointerException
>        at
>
> org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.processFaultDetail(CxfBcConsumer.java:560)
>        at
>
> org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.handleMessage(CxfBcConsumer.java:518)
> ....etc.
>
> My xbean.xml (gondor2 is the hostname of ServiceMix server and altair is
> the
> hostname where the WebService is running) 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:firma="http://currencyconverter.strast.dit.upm.es">
>           <cxfbc:consumer
>
> wsdl="http://altair:8080/CurrencyConverter/services/EURUSD?wsdl"
>               service="firma:EURUSDService"
>               endpoint="EURUSDProxy"
>               targetEndpoint="EURUSD"
>               targetService="firma:EURUSDService"
>               targetInterface="firma:EURUSDSoapBinding"
>
> locationURI="http://gondor2:8080/CurrencyConverter/services/EURUSD">
>           </cxfbc:consumer>
>           <cxfbc:provider
>
> wsdl="http://altair:8080/CurrencyConverter/services/EURUSD?wsdl"
>
> locationURI="http://altair:8080/CurrencyConverter/services/EURUSD"
>               service="firma:EURUSDService"
>               endpoint="EURUSD"
>               interfaceName="firma:EURUSDSoapBinding">
>           </cxfbc:provider>
> </beans>
>
> I don't know if you need the .wsdl file. I'm not sure if the endpoint,
> service and interfaceName configuration is right. Perhaps the problem is
> different. Any suggestions?
>
> Thank you very much!
>
> Antonio
>
>
> Freeman Fang wrote:
> >
> > 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 <fr...@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
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>
> >>
> >>
> >
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Take-SOAPAction-from-client%27s-request-tp16407528p16586203.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>


-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/

Re: Take SOAPAction from client's request

Posted by antoniofer <an...@dit.upm.es>.
Hi Esteban, Freeman, Guillaume,

I've been following this thread because I was having the same issue than
Esteban (SoapAction header) when proxying web services through ServiceMix.
I'm getting an exception when the WS client tries to run the WS by
connecting to ServiceMix:

INFO  - AutoDeploymentService  - Directory: hotdeploy: Finished installation
of archive:  wsproxy-cxf-sa.zip <- my SA
Apr 9, 2008 4:22:28 PM org.apache.cxf.phase.PhaseInterceptorChain
doIntercept
INFO: Interceptor has thrown exception, unwinding now
java.lang.NullPointerException
        at
org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.processFaultDetail(CxfBcConsumer.java:560)
        at
org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.handleMessage(CxfBcConsumer.java:518)
....etc.

My xbean.xml (gondor2 is the hostname of ServiceMix server and altair is the
hostname where the WebService is running) 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:firma="http://currencyconverter.strast.dit.upm.es">
           <cxfbc:consumer
              
wsdl="http://altair:8080/CurrencyConverter/services/EURUSD?wsdl"
               service="firma:EURUSDService"
               endpoint="EURUSDProxy"
               targetEndpoint="EURUSD"
               targetService="firma:EURUSDService"
               targetInterface="firma:EURUSDSoapBinding"
              
locationURI="http://gondor2:8080/CurrencyConverter/services/EURUSD">
           </cxfbc:consumer>
           <cxfbc:provider
              
wsdl="http://altair:8080/CurrencyConverter/services/EURUSD?wsdl"
              
locationURI="http://altair:8080/CurrencyConverter/services/EURUSD"
               service="firma:EURUSDService"
               endpoint="EURUSD"
               interfaceName="firma:EURUSDSoapBinding">
           </cxfbc:provider>
</beans> 

I don't know if you need the .wsdl file. I'm not sure if the endpoint,
service and interfaceName configuration is right. Perhaps the problem is
different. Any suggestions?

Thank you very much!

Antonio


Freeman Fang wrote:
> 
> 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 <fr...@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 <fr...@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
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>                   
>>>>>>>>>                 
>>>>>>>>
>>>>>>>>
>>>>>>>>               
>>>>>>>             
>>>>>>
>>>>>>
>>>>>>           
>>>>>         
>>>>
>>>>
>>>>       
>>>     
>>
>>
>>   
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Take-SOAPAction-from-client%27s-request-tp16407528p16586203.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Take SOAPAction from client's request

Posted by Freeman Fang <fr...@gmail.com>.
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 <fr...@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 <fr...@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
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>                   
>>>>>>>>                 
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>>             
>>>>>
>>>>>
>>>>>           
>>>>         
>>>
>>>
>>>       
>>     
>
>
>   


Re: Take SOAPAction from client's request

Posted by Esteban Forzani <ef...@gmail.com>.
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 <fr...@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 <fr...@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
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> >
> >
> >
> >
>
>


-- 
Esteban Forzani

Re: Take SOAPAction from client's request

Posted by Freeman Fang <fr...@gmail.com>.
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 <fr...@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 <fr...@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
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>>             
>>>>>
>>>>>
>>>>>           
>>>>         
>>>
>>>
>>>       
>>     
>
>
>   


Re: Take SOAPAction from client's request

Posted by Esteban Forzani <ef...@gmail.com>.
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 <fr...@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 <fr...@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
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> >
> >
> >
> >
>
>


-- 
Esteban Forzani

Re: Take SOAPAction from client's request

Posted by Freeman Fang <fr...@gmail.com>.
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 <fr...@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 <fr...@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
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>           
>>>>         
>>>
>>>
>>>       
>>     
>
>
>   


Re: Take SOAPAction from client's request

Posted by Esteban Forzani <ef...@gmail.com>.
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 <fr...@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 <fr...@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
> > > >
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> >
> >
> >
> >
>
>


-- 
Esteban Forzani

Re: Take SOAPAction from client's request

Posted by Freeman Fang <fr...@gmail.com>.
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 <fr...@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
>>>
>>>
>>>
>>>       
>>     
>
>
>   


Re: Take SOAPAction from client's request

Posted by Esteban Forzani <ef...@gmail.com>.
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 <fr...@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
> >
> >
> >
>
>


-- 
Esteban Forzani

Re: Take SOAPAction from client's request

Posted by Freeman Fang <fr...@gmail.com>.
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
>
>   


Re: Take SOAPAction from client's request

Posted by Guillaume Nodet <gn...@gmail.com>.
The <http:endpoint/> does not really support it (note that SOAPAction is
kinda deprecated anyway), so I would advise you to use the servicemix-cxfbc
component instead.

On Mon, Mar 31, 2008 at 9:40 PM, Esteban Forzani <ef...@gmail.com> 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
>



-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/