Java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/jdom/JDOMException (help!)

8 respostas
A

olá a todos!

estou criando uma aplicação web que chama um jApplet. neste jApplet há o tratamento de um String contendo XML que eu recebo de um serviço web. meu problema é que, quando executo a aplicação web, ela não encontra o pacote org.jdom.JDOMException.

eis o erro:

java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/jdom/JDOMException
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: org/jdom/JDOMException
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$12.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.jdom.JDOMException
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 14 more
Caused by: java.io.IOException: open HTTP connection failed:http://localhost:8080/DBResearchProjClientInterface/org/jdom/JDOMException.class
at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 17 more
Exception: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/jdom/JDOMException

o arquivo index.jsp, onde eu chamo o jApplet:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <%@page import="org.jdom.JDOMException" %>
        <title>JSP Page2</title>
    </head>
    <body>
        <APPLET ALIGN="CENTER" CODE="org.brunelli.GUI.InterfaceUsuario" archive="DBResearchProjGUI.jar"  width="100%" height="90%"></APPLET>

    </body>
</html>

notem que eu inclui a classe JDOMException no index.jsp
estou usando o Netbeans 6.5 RC2 e o Tomcat 6.0.26. inclui a biblioteca JDOM em (botão direito)>propriedades>bibliotecas. o arquivo DBResearchProjGUI.jar eu inclui em (botão direito)>propriedades>empacotamento

realmente já não sei o que fazer. preciso terminar este trabalho para o meu estágio e este erro continua aparecendo.

grato pela ajuda adiantado.

8 Respostas

T

Certifique-se que os jars necessários para rodar a sua aplicação estejam no classpath da mesma, ou no claspath do servidor!

A

os jars estão onde (eu julgo que) deveriam estar. no projeto, eu adicionei o JDOM em (botão direito em cima do projeto)>propriedades>bibliotecas. o arquivo JAR onde tem o jApplet foi incluído em (botão direito em cima do projeto)>propriedades>empacotamento. no Tomcat, eu inclui o JDOM.jar em TOMCAT_HOME/endorsed.

T

Na aplicação web eles devem estar dentro do diretório /WEB-INF/lib e no caso do tomcat TOMCAT_HOME/lib qualquer lugar diferente deste ele não irá encontrar o jar!

A

eu chequei e os jars estão nos locais que você falou. não consigo realmente entender o porquê de não funcionar…

T

por via das dúvidas, coloca o jar no mesmo diretório que o jar do teu applet

A

mesma coisa. coloquei os jars do applet e do JDOM em todas as opções possíveis e nada.

A

fiz um migué aqui que parece ter funcionado (ou não). baixei os sources do JDOM, coloquei eles na minha pasta /src, assim eles ficam acessíveis como qualquer pacote do meu projeto, e tirei a referência que tinha à biblioteca JDOM em (botão direito em cima do projeto)> propriedades> bibliotecas. o problema é que agora dá outro erro.

Exception in thread "thread applet-org.brunelli.GUI.InterfaceUsuario-1" java.lang.ExceptionInInitializerError
	at com.sun.xml.internal.ws.util.xml.XmlUtil.createDefaultCatalogResolver(Unknown Source)
	at com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL(Unknown Source)
	at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(Unknown Source)
	at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(Unknown Source)
	at com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(Unknown Source)
	at javax.xml.ws.Service.<init>(Unknown Source)
	at org.brunelli.ws.DBResearchWSService.<init>(DBResearchWSService.java:46)
	at org.brunelli.GUI.InterfaceUsuario.init(InterfaceUsuario.java:53)
	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission xml.catalog.ignoreMissing read)
	at java.security.AccessControlContext.checkPermission(Unknown Source)
	at java.security.AccessController.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
	at java.lang.System.getProperty(Unknown Source)
	at com.sun.org.apache.xml.internal.resolver.CatalogManager.<init>(Unknown Source)
	at com.sun.org.apache.xml.internal.resolver.CatalogManager.<clinit>(Unknown Source)
	... 10 more

alguma ideia?

A

ah, só para completar, a linha em que dá pau no meu programa,

at org.brunelli.GUI.InterfaceUsuario.init(InterfaceUsuario.java:53)
é onde eu crio o cliente do web service.
service = new DBResearchWSService();
Criado 6 de abril de 2010
Ultima resposta 7 de abr. de 2010
Respostas 8
Participantes 2