Olá. Estou trabalhando em um programa baseado em protocolo BitTorrent, e queria saber se alguém aí já mexeu com a JBitTorrent API(http://sourceforge.net/projects/bitext (em especial seu tracker) e poderia me dar um auxílio em sua configuração. Meu problema, no caso, é a seguinte mensagem de erro:
Exception in thread “main” java.lang.NoClassDefFoundError: org/kxml2/io/KXmlParser
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at simple.util.xml.Traverser.parse(Unknown Source)
at simple.util.xml.Traverser.parse(Unknown Source)
at simple.util.xml.Traverser.parse(Unknown Source)
at simple.http.load.PatternResolver.load(Unknown Source)
at simple.http.load.PatternResolver.load(Unknown Source)
at simple.http.load.PatternResolver.init(Unknown Source)
at simple.http.load.PatternResolver.(Unknown Source)
at simple.http.load.PatternMapper.(Unknown Source)
at simple.http.load.PatternMapper.(Unknown Source)
at simple.http.load.MapperFactory.getInstance(Unknown Source)
at simple.http.load.MapperEngine.(Unknown Source)
at simple.http.load.MapperEngine.(Unknown Source)
at simple.http.load.MapperEngine.(Unknown Source)
at simple.http.load.MapperEngine.(Unknown Source)
at simple.http.load.MapperEngine.(Unknown Source)
at br.usp.larc.tracker.Tracker.main(Tracker.java:106)
Caused by: java.lang.ClassNotFoundException: org.kxml2.io.KXmlParser
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 java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
… 28 more
que é retornada no seguinte trecho de código:
//...
Context context = new FileContext(new File((String) Constants.get("context")));
try {
MapperEngine engine = new MapperEngine(context); // Linha onde ocorre o erro
//...
Onde Constants.get(“context”) retorna o local de uma pasta. MapperEngine é uma classe da API Simple(http://www.simpleframework.org). Não consigo entender de onde vem esse erro. Já ví esse código rodar, então não crieo que seja um problema dele, mas sim dos parâmetros de configuração que eu estou passando. Agradeceria qualquer ajuda neste assunto!
Ou também, se alguém poderia me dar uma dica de uma implementação de tracker BitTorrent Open Source usando Java que não seja. Eu sei que Java não é o ideal para este tipo de aplicação, e inclusive já cheguei a ver o opentracker, em C, e sei que é bom, mas como o projeto é 100% em Java considero que é melhor que não se tenham muitas linguagens misturadas…