title: Error consuming web service due to lack of certificate in java (XML SOAP based)
body: <p>I need to consume a web service which was built under Https in java. 
  The Web Service Client was generated using Eclipse and to call it I use the following code:</p>
  
  <pre><code>ServicioTimbradoPruebasLocator ServicioTimbradoLocator = new ServicioTimbradoPruebasLocator();
                              ServicioTimbradoPruebasSoap ServicioTimbrado = ServicioTimbradoLocator.getServicioTimbradoPruebasSoap();
                              javax.xml.rpc.Stub s =((javax.xml.rpc.Stub)ServicioTimbrado);
                              s._setProperty(javax.xml.rpc.Stub.USERNAME_PROPERTY, "XXXXXXXX");
                              s._setProperty(javax.xml.rpc.Stub.PASSWORD_PROPERTY, "psswd");          
                              String resultado = ServicioTimbrado.generaTimbre(xml.getBytes());
                              System.out.println("resultado: " +resultado);
  </code></pre>
  
  <p>On this line <strong>String resultado = ServicioTimbrado.generaTimbre(xml.getBytes());</strong> I get the following error:</p>
  
  <pre><code>AxisFault
       [java]  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
       [java]  faultSubcode: 
       [java]  faultString: 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
       [java]  faultActor: 
       [java]  faultNode: 
       [java]  faultDetail: 
       [java]     {http://xml.apache.org/axis/}stackTrace: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
       [java]     at sun.security.ssl.Alerts.getSSLException(Unknown Source)
       [java]     at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source)
       [java]     at sun.security.ssl.Handshaker.fatalSE(Unknown Source)
       [java]     at sun.security.ssl.Handshaker.fatalSE(Unknown Source)
       [java]     at sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source)
       [java]     at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source)
       [java]     at sun.security.ssl.Handshaker.processLoop(Unknown Source)
       [java]     at sun.security.ssl.Handshaker.process_record(Unknown Source)
       [java]     at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
       [java]     at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
       [java]     at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
       [java]     at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
       [java]     at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:186)
       [java]     at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
       [java]     at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
       [java]     at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
       [java]     at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
       [java]     at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
       [java]     at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
       [java]     at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
       [java]     at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
       [java]     at org.apache.axis.client.Call.invoke(Call.java:2767)
       [java]     at org.apache.axis.client.Call.invoke(Call.java:2443)
       [java]     at org.apache.axis.client.Call.invoke(Call.java:2366)
       [java]     at org.apache.axis.client.Call.invoke(Call.java:1812)
       [java]     at mx.com.timbrado.test.cfdi.ServicioTimbradoPruebasSoapStub.generaTimbre(ServicioTimbradoPruebasSoapStub.java:107)
       [java]     at natura.facturacion.general.GuardarFacturaElectronicav2.doPost(GuardarFacturaElectronicav2.java:136) ...
  </code></pre>
  
  <p>I want to know if there is a way to send the certificate among with the webservice call. 
  More information about the wsdl contract and the java generated files could be found <a href="https://stackoverflow.com/questions/9072079/consume-xml-soap-webservice-in-java">here</a></p>