Since there some code in CXF for hacking the Qname for endpointName and
serviceName, I don't think you can use the spring placeholder there.
How about set the endpointName and serviceName within the
<cxf:properties> like this
<cxf:cxfEndpoint id="soapMessageEndpointProvider"
serviceClass="com.orange.ose.smc.core.web.SmcCxfProvider"
wsdlURL="file:///${conf.from.ws.wsdl.location}">
<cxf:properties>
<entry key="dataFormat" value="MESSAGE"></entry>
<entry key="endpointLocalName" value="${conffrom.ws.soapport}></entry>
<entry key="endpointNamespace"
value="http://com.mycompany/MyPort"></entry> <entry
key="serviceLocalName" value="${conffrom.ws.soapserver}"></entry>
<entry key="serviceNamespace"
value="http://com.mycompany/MyService"></entry>
</cxf:properties>
<cxf:cxfEndpoint/>
I think I can add this feature before end of this year :)
Willem
GLD wrote:
> Hi,
>
> I 'm using Camel 1.5.0, CXF 2.1.3
> I'm delivering an EAR so I use CxfServlet.
>
> 1- I want to process incoming SOAP messages form a CXF point in a generic
> manner
> ==> I want to configure WSDL info in an property file outside the EAR.
> ==> So, I tried to write
>
> <cxf:cxfEndpoint id="soapMessageEndpointProvider"
> serviceClass="com.orange.ose.smc.core.web.SmcCxfProvider"
> address="${conffrom.relative.url}"
> wsdlURL="file:///${conf.from.ws.wsdl.location}"
> endpointName="s:ServiceSOAP"
> serviceName="s:PortName"
> xmlns:s="http://com.mycompany/MyService">
> <cxf:properties>
> <entry key="dataFormat" value="MESSAGE"></entry>
> </cxf:properties>
> </cxf:cxfEndpoint>
>
> It works but in fact, I would like to use spring placeholder in attributes
> endpointName, serviceName and xmlns but it fails.
>
> - For "endpointName, serviceName" : At XML validation time :
> cvc-attribute.3: The value 's:${conffrom.ws.soapservice}' of attribute
> 'serviceName' on
> element 'cxf:cxfEndpoint' is not valid with respect to its type,
> 'QName'.
>
> - for xmlns : At run time : the placeholder is not substituted!
>
> Any idea?
>