Iso8583 error example.java

Hola!
Estoy tratando de usar el paquete de ezamudio j8583 para generar mensajes ISO8583. Estoy tratando de correr el archivo example.java para ver el funcionamiento pero estoy consiguiendo este error

root@squezze:/home/pub/iso8583/example# java Example2
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
        at com.solab.iso8583.parse.ConfigParser.<clinit>(ConfigParser.java:51)
        at Example2.main(Example2.java:52)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        ... 2 more

Revise el paquete y no encuentro org/slf4j

Alguien tiene una idea?

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

slf4j.org

Bajalo de slf4j.org. Necesitas slf4j-api para compilar y alguna implementación en runtime (para log4j, JUL, simple, logback, etc)

Imagen de macaruchi

Oki

Ya! Me baje como me dijiste, aunque no entiendo lo de la implementacion en runtime. Pero lo corri y ahora obtuve este error ::

root@squezze:/home/pub/iso8583/example# java Example2
23 [main] WARN com.solab.iso8583.parse.ConfigParser - ISO8583 File not found in classpath: j8583/example/config.xml
62 [main] ERROR com.solab.iso8583.MessageFactory - ISO8583 MessageFactory has no parsing guide for message type 0210 [ISO0250000550210B23A80012EA080180000000014000004650000000000003000042813054746877112594604280428081103123173766123456123456=00123442579114472300614209027600TESTSOLAB                 TEST-3       DF MX484012B123PRO1+000013        0000P0312304ABCD040ABCD8123477547                          ]
Exception in thread "main" java.lang.NullPointerException
        at Example2.print(Example2.java:42)
        at Example2.main(Example2.java:59)

El config.xml lo tengo en la ruta relativa j8583/example/config.xml que le cree para el.

MessageFactory mfact = ConfigParser.createFromClasspathConfig("j8583/example/config.xml");

Esa linea parte del lugar donde esta la clase que se ejecuta ??

Imagen de ezamudio

no

parte del classpath, de donde está la clase que intenta carga la config. Si la ruta j8583/example/config.xml está en un directorio que es parte del classpath, entonces ponle una diagonal nada más.

Imagen de macaruchi

??

Yo tengo esa ruta no es parte del classpath. Sino lo que hice fue que simplemente agregue esas carpetas al directorio donde estan las clases.
Ese archivo de config.xml no se puede leer del directorio que yo desee siin necesidad de que sea parte de un classpath.?
Es decir, que si deseo que dicho archivo este en mi directorio raiz poder buscarlo ahi ?

O lo puedo hacer con la ruta absoluta ?

Imagen de macaruchi

ejemplo

Ejemplo no podria hacer esto

MessageFactory mfact = ConfigParser.createFromClasspathConfig("config.xml");

Em este caso. creo, buscara el archivo en el mismo lugar donde este la clase principal o existe otro metodo que sea
ConfigParser.createFromPathConfig, digo :)

Imagen de ezamudio

absolutas

El método que estás usando createFromClasspathConfig, como su nombre lo indica, busca un archivo en el classpath. En el classpath también hay rutas relativas y absolutas. Las absolutas comienzan con / y las relativas no; las relativas con una bronca porque son relativas al classLoader que se use. Si el config.xml está en el raíz de tu classpath, es decir, en cualquier directorio mencionado directamente en tu classpath, entonces si buscas /config.xml lo debe encontrar.

Si quieres buscar un archivo fuera del classpath, usa otro método de ConfigParser.

Imagen de macaruchi

Estoy revisando los metodos

Estoy revisando los metodos de ConfigParser pero no hay uno que pueda leer de un directorio que no este en el classpath.
Este es el que mas se acerca segun yo, que puedo estar bien equivocado

/** Creates a message factory from the file located at the specified URL. */
        public static MessageFactory createFromUrl(URL url) throws IOException {

La URL puede ser un archivo en un directorio. Ejemplo /home/pub/example/myiso/config.xml ?

Cuando leo URL solo pienso en web. :)

Imagen de ezamudio

ese es

URL es un Uniform Resource Locator. La idea es que puedas apuntar a un recurso en cualquier lugar, por eso empieza con la parte de protocolo. Para apuntar a un archivo en tu filesystem, file:///tmp/basura.txt es válido.

Imagen de macaruchi

Este es el eroro que tengo

Este es el eroro que tengo ahora

root@squezze:/home/pub/iso8583/example# javac Example2.java
Example2.java:53: createFromUrl(java.net.URL) in com.solab.iso8583.parse.ConfigParser cannot be applied to (java.lang.String)
                MessageFactory mfact = ConfigParser.createFromUrl("file:///config.xml");
 
Imagen de ezamudio

pues sí

Si ves la documentación del método, createFromUrl espera un java.net.URL y le estás pasando un java.lang.String.