Hello, for the record, we are using: - Fuse ESB 7.1.0.fuse-047 - Camel 2.10.0.fuse-71-047 - CXF 2.6.0.fuse-71-047 - JDK 1.7 - JBOss EAP 6.3
and we encounter a problem using the Camel CXFRS component in combination with an http-conduit definition. It seems the wildcards one should be able to use in the http-conduit name is not taken into account (http://cxf.apache.org/docs/client-http-transport-including-ssl-support.html#ClientHTTPTransport%28includingSSLsupport%29-Theconduitelement). Here its definition in our bundle-context.xml: <http:conduit name="*.http-conduit"> <http:tlsClientParameters disableCNCheck="true"> <sec:trustManagers> <sec:keyStore type="JKS" password="#{decryptedTruststorePassword}" file="${trustStore.file.ics}" /> </sec:trustManagers> <sec:cipherSuitesFilter> <sec:include>.*.*</sec:include> <sec:exclude>.*40_.*</sec:exclude> <sec:exclude>.*_RSA_WITH_DES_CBC_SHA.*</sec:exclude> <sec:exclude>.*_RSA_WITH_3DES_EDE_CBC_SHA.*</sec:exclude> </sec:cipherSuitesFilter> </http:tlsClientParameters> <http:client ReceiveTimeout="${cxfReceiveTimeout}" ConnectionTimeout="${cxfConnectionTimeout}" ProxyServer="${proxy.server}" ProxyServerPort="${proxy.port}" NonProxyHosts="${proxy.nonProxyHosts}" /> </http:conduit> The Camel route, deployed on Fuse, uses the Camel CXFRS component for the call of a REST service running on a JBOss server. A typical call would be: cxfrs://https://localhost:8443/invitation-code-service/checkCode/param1/param2/param3 This leads to following log entries: 2015-07-30 08:35:29,477 | DEBUG | tp1076592703-174 | TrustDecisionUtil | 120 - org.apache.cxf.cxf-rt-transports-http - 2.6.0.fuse-71-047 | No Trust Decider for Conduit '{htt ps://localhost:8443/invitation-code-service/checkCode/param1/param2/param3}WebClient.http-conduit'. An afirmative Trust Decision is assumed. 2015-07-30 08:35:29,493 | DEBUG | tp1076592703-174 | PhaseInterceptorChain | 90 - org.apache.cxf.cxf-api - 2.6.0.fuse-71-047 | Invoking handleFault on interceptor org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor@7d909223 2015-07-30 08:35:29,493 | DEBUG | tp1076592703-174 | PhaseInterceptorChain | 90 - org.apache.cxf.cxf-api - 2.6.0.fuse-71-047 | Invoking handleFault on interceptor org.apache.cxf.interceptor.MessageSenderInterceptor@64e182ae 2015-07-30 08:35:29,493 | DEBUG | tp1076592703-174 | PhaseInterceptorChain | 90 - org.apache.cxf.cxf-api - 2.6.0.fuse-71-047 | Invoking handleFault on interceptor org.apache.cxf.ws.policy.PolicyOutInterceptor@26da3556 2015-07-30 08:35:29,493 | WARN | tp1076592703-174 | PhaseInterceptorChain | 90 - org.apache.cxf.cxf-api - 2.6.0.fuse-71-047 | Interceptor for {https://localhost:8443/invitation-code-service/checkCode/param1/param2/param3}WebClient has thrown exception, unwinding now org.apache.cxf.interceptor.Fault: Could not send Message. at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)[90:org.apache.cxf.cxf-api:2.6.0.fuse-71-047] at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)[90:org.apache.cxf.cxf-api:2.6.0.fuse-71-047] at org.apache.cxf.jaxrs.client.WebClient.doChainedInvocation(WebClient.java:795) at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:743) at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:717) at org.apache.cxf.jaxrs.client.WebClient.invoke(WebClient.java:262) at org.apache.camel.component.cxf.jaxrs.CxfRsProducer.invokeHttpClient(CxfRsProducer.java:155) at org.apache.camel.component.cxf.jaxrs.CxfRsProducer.process(CxfRsProducer.java:87) at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.RoutingSlip$2.doInAsyncProducer(RoutingSlip.java:287) at org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:298) at org.apache.camel.processor.RoutingSlip.processExchange(RoutingSlip.java:280) at org.apache.camel.processor.RoutingSlip.doRoutingSlip(RoutingSlip.java:205) at org.apache.camel.processor.RoutingSlip.process(RoutingSlip.java:135) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:163) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.fabric.FabricTraceProcessor.process(FabricTraceProcessor.java:81) [...] Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)[:1.7.0_72] at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1884)[:1.7.0_72] at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:276)[:1.7.0_72] at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:270)[:1.7.0_72] at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1439)[:1.7.0_72] at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:209)[:1.7.0_72] at sun.security.ssl.Handshaker.processLoop(Handshaker.java:878)[:1.7.0_72] at sun.security.ssl.Handshaker.process_record(Handshaker.java:814)[:1.7.0_72] at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1016)[:1.7.0_72] at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312)[:1.7.0_72] at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)[:1.7.0_72] at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323)[:1.7.0_72] at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563)[:1.7.0_72] at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)[:1.7.0_72] at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1300)[:1.7.0_72] at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468)[:1.7.0_72] at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)[:1.7.0_72] at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1604)[120:org.apache.cxf.cxf-rt-transports-http:2.6.0.fuse-71-047] at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1530)[120:org.apache.cxf.cxf-rt-transports-http:2.6.0.fuse-71-047] at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1438)[120:org.apache.cxf.cxf-rt-transports-http:2.6.0.fuse-71-047] ... 266 more Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:385)[:1.7.0_72] at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)[:1.7.0_72] at sun.security.validator.Validator.validate(Validator.java:260)[:1.7.0_72] at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:326)[:1.7.0_72] at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)[:1.7.0_72] at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126)[:1.7.0_72] at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1421)[:1.7.0_72] ... 281 more Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:196)[:1.7.0_72] at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:268)[:1.7.0_72] at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:380)[:1.7.0_72] ... 287 more If we define a fully http-conduit name like: <http:conduit name="{https://localhost:8443/invitation-code-service/checkCode/param1/param2/param3}WebClient.http-conduit"> it works. Obviously, we can't use the http-conduit definition this way, as param1, param2 and param3 change for every call. Why does it not work with wildcards ? Regards, Myriam -- View this message in context: http://camel.465427.n5.nabble.com/Use-CXFRS-component-in-combination-with-an-http-conduit-definition-with-wildcards-tp5770096.html Sent from the Camel Development mailing list archive at Nabble.com.