Error al intentar obtener un ticket en webservice de afip.

Iniciado por jorgelujanm, 19 Diciembre 2012, 21:40 PM

0 Miembros y 1 Visitante están viendo este tema.

jorgelujanm

 :huh: Tengo un problema con la autenticación ante la AFIP en el marco de factura electrónica.

He aquí el error: Y sospecho que tiene que ver con el envío ya que la conformación del paquete del mensaje estaría correcto o, por lo menos, no arroja ningún error.

run:
OK
TRA: <?xml version="1.0" encoding="UTF-8" ?><loginTicketRequest version="1.0"><header><source>C=AR, O=infotech, SERIALNUMBER=CUIT 20245281650, CN=jorge</source><destination>cn=jorge,o=infotech,c=ar,serialNumber=CUIT 20245281650</destination><uniqueId>1355949411</uniqueId><generationTime>2012-12-19T17:36:51.167-03:00</generationTime><expirationTime>2012-12-19T18:36:51.146-03:00</expirationTime></header><service>wsfe</service></loginTicketRequest>
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
faultActor:
faultNode:
faultDetail:
   {http://xml.apache.org/axis/}stackTrace:javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
   at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
   at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1868)
   at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1826)
   at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1809)
   at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1328)
   at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1305)
   at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:186)
   at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
   at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
   at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
   at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
   at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
   at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
   at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
   at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
   at org.apache.axis.client.Call.invoke(Call.java:2767)
   at org.apache.axis.client.Call.invoke(Call.java:2443)
   at org.apache.axis.client.Call.invoke(Call.java:2366)
   at org.apache.axis.client.Call.invoke(Call.java:1812)
   at afip_wsaa_client.invoke_wsaa(afip_wsaa_client.java:87)
   at wsaa_test.main(wsaa_test.java:87)
Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
   at sun.security.validator.PKIXValidator.&lt;init&gt;(PKIXValidator.java:90)
   at sun.security.validator.Validator.getInstance(Validator.java:179)
   at sun.security.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:314)
   at sun.security.ssl.X509TrustManagerImpl.checkTrustedInit(X509TrustManagerImpl.java:173)
   at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:186)
   at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126)
   at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1320)
   at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:154)
   at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)
   at sun.security.ssl.Handshaker.process_record(Handshaker.java:804)
   at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:998)
   at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1294)
   at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1321)
java.lang.NullPointerException
   ... 16 more
Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
   at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:200)
   at java.security.cert.PKIXParameters.&lt;init&gt;(PKIXParameters.java:120)
   at java.security.cert.PKIXBuilderParameters.&lt;init&gt;(PKIXBuilderParameters.java:104)
   at sun.security.validator.PKIXValidator.&lt;init&gt;(PKIXValidator.java:88)
   ... 28 more

   {http://xml.apache.org/axis/}hostname:Jorge_nb

javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
   at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
   at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:154)
   at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
   at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
   at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
   at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
   at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
   at org.apache.axis.client.Call.invoke(Call.java:2767)
   at org.apache.axis.client.Call.invoke(Call.java:2443)
   at org.apache.axis.client.Call.invoke(Call.java:2366)
   at org.apache.axis.client.Call.invoke(Call.java:1812)
   at afip_wsaa_client.invoke_wsaa(afip_wsaa_client.java:87)
   at wsaa_test.main(wsaa_test.java:87)
Caused by: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
   at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
   at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1868)
   at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1826)
   at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1809)
   at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1328)
   at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1305)
   at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:186)
   at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
   at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
   at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
   ... 11 more
Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
   at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:90)
   at sun.security.validator.Validator.getInstance(Validator.java:179)
   at sun.security.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:314)
   at sun.security.ssl.X509TrustManagerImpl.checkTrustedInit(X509TrustManagerImpl.java:173)
   at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:186)
   at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126)
   at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1320)
   at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:154)
   at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)
   at sun.security.ssl.Handshaker.process_record(Handshaker.java:804)
   at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:998)
   at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1294)
   at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1321)
   ... 16 more
Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
   at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:200)
   at java.security.cert.PKIXParameters.<init>(PKIXParameters.java:120)
   at java.security.cert.PKIXBuilderParameters.<init>(PKIXBuilderParameters.java:104)
   at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:88)
   ... 28 more
BUILD SUCCESSFUL (total time: 3 seconds)

He aquí mi código:
Código (java) [Seleccionar]

public class afip_wsaa_client {

    static String invoke_wsaa (byte [] LoginTicketRequest_xml_cms, String endpoint) throws Exception {

      String LoginTicketResponse = null;
      try {

        Service service = new Service();
        Call call = (Call) service.createCall();

        //
        // Prepare the call for the Web service
        //
        call.setTargetEndpointAddress( new java.net.URL(endpoint) );
        call.setOperationName("loginCms");
        call.addParameter( "request", XMLType.XSD_STRING, ParameterMode.IN );
        call.setReturnType( XMLType.XSD_STRING );

        //
        // Make the actual call and assign the answer to a String
        //
        LoginTicketResponse = (String) call.invoke(new Object [] {
                Base64.encode (LoginTicketRequest_xml_cms) } );


      } catch (Exception e) {
        e.printStackTrace();
      }       
      return (LoginTicketResponse);
    }

RobHalford

#1
Por el mensaje de error:

javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty



Tiene pinta de que estás haciendo una llamada a un Web Service que está securizado. En tu llamada no pasas ninguna credencial de seguridad. Tendrías que averiguar si está securizado y qué tipo de seguridad tiene. En caso de que tenga seguridad activada, pasarle las credenciales de forma adecuada.

Saludos

Daniel1967

Hola: Pudiste resolverlo ? tengo el mismo problema con la maldita factura electronica de Argentina en Java con Netbeans, axis y el certificado p12. Te agradecería mucho tu ayuda.