Menu

En dónde configuro el orden de librerías classpath para modo runtime (servidor)?

2017-11-06
2017-11-07
  • Helio Gutierrez

    Helio Gutierrez - 2017-11-06

    Hola,

    Tengo la versión 3.7 de adempiere corriendo en java 1.7.
    Estoy incluyendo una librería para un proyecto de facturación electrónica y ésta librería requería agregar también algunas otras como dependencias, entre ellas commons-code-1.4.jar.

    Ésta última librería es requerida en una clase llamada CFDv33 en el método "sellar":

    147 public void sellar(PrivateKey key, X509Certificate cert) throws Exception {
    148 String nc = new String(cert.getSerialNumber().toByteArray());
    149 cert.checkValidity();
    150 byte[] bytes = cert.getEncoded();
    151 Base64 b64 = new Base64(-1);
    152 String certStr = b64.encodeToString(bytes);
    153 document.setCertificado(certStr);
    154 document.setNoCertificado(nc);
    155 String signature = getSignature(key);
    156 document.setSello(signature);
    157 }

    Éstas librerías las agregué sobre zkwebui/lib y compila todo muy bien y corre el servidor perfectamente.

    Al momento de hacer la prueba truena precisamente en esa línea con el siguiente error:

    16:09:41,972 ERROR [STDERR] 2017-10-21 16:09:41.36600 ===========> zkoss.handleError:1130: >>java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.<init>(I)V

    at mx.bigdata.sat.cfdi.CFDv33.sellar(CFDv33.java:151)
    at mx.bigdata.sat.cfdi.CFDv33.sellarComprobante(CFDv33.java:160)
    at org.adempiere.webui.util.GenerateInvoiceXml33.stamp(GenerateInvoiceXml33.java:701)

    Estoy seguro que está tomando otra clase commons-code, que por cierto encontré en ServerApps, jboss y tools, reemplazando las librerías commons-codec.jar por commons-codec-1.4.jar, pero continúa el error en tiempo de ejecución.

    La clave es en dónde debo configurar el classpath para modo de ejecución que tome primero la librería commons-code-1.4.jar?

    Agradezco de antemano.

     
  • Yamel Senih

    Yamel Senih - 2017-11-06

    Hola Helio, hay dos formas de cambiar el classpath, con gusto nos puesdes escrinir a nuestro nuevo foro, ya no estamos aqui.

    Eres bienvenido a nuestro nuevo chat en linea donde puedes hacer preguntas y serán respondidas inmediatamente en: http://adempiere.net/web/guest/chat_en_linea
    También puedes escribir en el Foro oficial en: http://adempiere.net/web/guest/foro
    Si quieres reportar un issue, puesdes hacerlo en https://github.com/adempiere/adempiere
    Es muy sencillo y puedes solicitar un usuario en http://adempiere.net/

    Saludos

     
    • Helio Gutierrez

      Helio Gutierrez - 2017-11-07

      Yael me podrías decir en que sección solicito el acceso porque en la sección "How to join" dice que no tiene contenido.

      Saludos.

       
  • Helio Gutierrez

    Helio Gutierrez - 2017-11-07

    Te agradezco Yael!

     

Log in to post a comment.