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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]>
> >> 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 <[EMAIL PROTECTED]
> >
> >>>> 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 <
> [EMAIL PROTECTED]
> >>>>>>
> >>>>>> 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 <
> >>>>>>>> [EMAIL PROTECTED]
> >>>>>>>>          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/

Reply via email to