cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yaroslav Gnatyuk (JIRA)" <>
Subject [jira] [Commented] (CXF-4741) Different conduits are used when configuring stub and sending actual message
Date Wed, 09 Jan 2013 15:08:13 GMT


Yaroslav Gnatyuk commented on CXF-4741:

You're right, I'm trying to debug it right now to see the exact content of conduits collection.
Basically what I'm doing is I have already generated SOAP client (by means of cxf-codegen-plugin)
and the URL in WSDL differs from the one I'm actually calling. So for each call I'm getting
a port and configuring its conduit with URL, read timeout, connection timeout and TLS

        Client client = ClientProxy.getClient(port);
        client.getRequestContext().put(Message.ENDPOINT_ADDRESS, endpointUrl);

        HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();

        HTTPConduit http = (HTTPConduit) client.getConduit();

        try {
            char[] password = keyStorePassword.toCharArray();

            KeyStore keyStore = KeyStore.getInstance(keyStoreType);
            keyStore.load(new ClassPathResource(keyStoreLocation).getInputStream(), password);

            KeyManagerFactory factory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
            factory.init(keyStore, password);

            TLSClientParameters params = new TLSClientParameters();
        } catch (Exception e) {
            throw new RuntimeException("Cannot build key managers", e);

But looks like when I'm actually doing a call it uses different conduit in ClientImpl.doInvoke()
> Different conduits are used when configuring stub and sending actual message
> ----------------------------------------------------------------------------
>                 Key: CXF-4741
>                 URL:
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.6.2, 2.6.4
>            Reporter: Yaroslav Gnatyuk
> I was trying to set TLS context as described here: [How to configure the HTTPConduit
for the SOAP Client?|]
> However it doesn't work in CXF 2.6.2 and 2.6.4 while it worked perfectly fine in 2.5.3
> When looking into the code (line numbers are for version 2.6.4) I discovered that during
this configuration a new message is created and passed to conduit selector (in this case UpfrontConduitSelector)
- ClientImpl.getConduit():846.
> New conduit is created, assigned to message and returned.
> However when I do an actual call, I get to ClientImpl.doInvoke():486 where another message
is created. Later on prepare() is called on conduit selector at ClientImpl.prepareConduitSelector():850
but the message is different so another conduit is created.
> This results in my conduit config being disregarded and I'm getting SSLHandshakeException

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message