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.