Here is the code that I have been using: SetSaleRequest request = new SetSaleRequest(); SetSaleResponse response = new SetSaleResponse();
// CXF CLIENT FOR MUTUAL TLS // Setup TLS client params TLSClientParameters tlsParams = new TLSClientParameters(); /* Get the JKS contents */ final char[] JKS_PASSWORD = "somepassword".toCharArray(); final char[] KEY_PASSWORD = "somepassword".toCharArray(); // KEYSTORE final KeyStore keyStore = KeyStore.getInstance("JKS"); try (final InputStream is = new FileInputStream("C:\\Users\\Owner\\IdeaProjects\\sales\\src\\main\\resources\\keystore.jks")) { keyStore.load(is, JKS_PASSWORD); } final KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); kmf.init(keyStore, KEY_PASSWORD); // TRUSTSTORE final KeyStore trustStore = KeyStore.getInstance("JKS"); try (final InputStream is = new FileInputStream("C:\\Users\\Owner\\IdeaProjects\\sales\\src\\main\\resources\\truststore.jks")) { trustStore.load(is, JKS_PASSWORD); } TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); tmf.init(trustStore); tlsParams.setTrustManagers(tmf.getTrustManagers()); tlsParams.setDisableCNCheck(true); //CODE FROM COLM SSLContext sc = SSLContext.getInstance("TLS"); try { sc.init(null, tmf.getTrustManagers(), null); } catch (KeyManagementException e) { e.printStackTrace(); } HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); // SENDS DATA request.setSale(Sale); request.getPeople().add(person); RSIService RSIService = new RSIService(); IRSIService iRSIService = RSIService.getPort(IRSIService.class); // APACHE CXF CLIENT SETUP - MESSAGE SIGNING ((BindingProvider)iRSIService).getRequestContext().put(SecurityConstants.ENCRYPT_PROPERTIES, "client_sign.properties"); ((BindingProvider)iRSIService).getRequestContext().put(SecurityConstants.SIGNATURE_PROPERTIES, "client_sign.properties"); ((BindingProvider)iRSIService).getRequestContext().put(SecurityConstants.SIGNATURE_USERNAME, "signingonly"); ((BindingProvider)iRSIService).getRequestContext().put(SecurityConstants.CALLBACK_HANDLER, ClientCallbackHandler.class.getName()); // Logging LoggingOutInterceptor loi = new LoggingOutInterceptor(); LoggingInInterceptor lii = new LoggingInInterceptor(); org.apache.cxf.endpoint.Client client = org.apache.cxf.frontend.ClientProxy.getClient(iRSIService); org.apache.cxf.endpoint.Endpoint cxfEndpoint = client.getEndpoint(); cxfEndpoint.getOutInterceptors().add(loi); cxfEndpoint.getInInterceptors().add(lii); //Client client = ClientProxy.getClient(port); HTTPConduit http = (HTTPConduit) client.getConduit(); http.setTlsClientParameters(tlsParams); // Sending the data response = iRSIService.setSale(request); System.out.println(response.isSuccess()); System.out.println("Sent"); } If there is no obvious error above that could be the cause of the stack trace do you have a link to defining the keys in spring? Cheers AG -- Sent from: http://cxf.547215.n5.nabble.com/cxf-user-f547216.html