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? >