org.apache.commons.net.ftp.parser.ParserInitializationException: Error initializing parser
at org.apache.commons.net.ftp.parser.DefaultFTPFileEntryParserFactory.createFileEntryParser(DefaultFTPFileEntryParserFactory.java:129)
at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2358)
at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2141)
at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2188)
Bom amigos,
Eu fiz um programa para download de uma pasta em um ftp. Ele funcionava corretamente e de ontem pra cá começou a dar esse erro.
Alguém sabe me dizer o por que?
Muitas vezes, pelo nome da classe dá para saber qual é o jar que falta. Por exemplo, se faltar algo como “org.apache.commons.logging” ou coisa parecida, você sabe que tem de baixar a Apache Commons Logging.
java.lang.NoClassDefFoundError: org/apache/oro/text/regex/MalformedPatternException
at org.apache.commons.net.ftp.parser.DefaultFTPFileEntryParserFactory.createUnixFTPEntryParser(DefaultFTPFileEntryParserFactory.java:169)
at org.apache.commons.net.ftp.parser.DefaultFTPFileEntryParserFactory.createFileEntryParser(DefaultFTPFileEntryParserFactory.java:94)
at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2358)
at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2141)
at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2188)
at br.com.kooky.sikget.ui.EDIUI.testarCommonsFTP(EDIUI.java:250)
at br.com.kooky.sikget.ui.EDIUI.access$1200(EDIUI.java:105)
at br.com.kooky.sikget.ui.EDIUI$1.run(EDIUI.java:210)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at br.com.kooky.sikget.lib.contextmenu.MyEventQueue.dispatchEvent(MyEventQueue.java:31)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.ClassNotFoundException: org.apache.oro.text.regex.MalformedPatternException
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 17 more
É que é assim: o ORO é um pacote muito antigo do Jakarta Apache que supria a falta de suporte a expressões regulares do Java 1.3 e anteriores. No Java 1.4 apareceu o pacote java.util.regex, que praticamente substituiu o uso do ORO. Alguns pacotes antigos (bem como aqueles que têm de suportar o Java 1.3, que não é tão desusado assim quanto parece) ainda precisam usar o ORO.