Question

GlassFish 2.1 me pose un étrange problème: je suis un débutant avec ce conteneur et j'ai du mal à le comprendre.

J'ai une nouvelle installation de GlassFish 2.1 avec un pool de connexions JDBC appelé testDerbyPool. J'ai ensuite défini une ressource appelée jdbc / testDerbyPool pointant vers ce pool. Le type de ressource est javax.sql.DataSource et je peux envoyer une commande ping au pool avec succès.

J'ai alors une seule classe dans une application Web avec cette déclaration:

@Resource(name="jdbc/testDerbyPool")
private javax.sql.DataSource source;

Cette déclaration dans mon web.xml:

  <resource-ref>
    <res-ref-name>jdbc/testDerbyPool</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>

Lorsque j'essaie de déployer l'application, le message d'erreur suivant s'affiche:

[#|2009-09-09T21:40:47.582+0100|SEVERE|sun-appserver9.1|javax.enterprise.system.container.web|_ThreadID=24;_ThreadName=Thread-32;_RequestID=1ca4ab80-ae39-4920-be18-f535b025bb51;|WebModule[/cptest1]PWC1275: Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener

et une énorme trace de pile, à partir de:

java.lang.NoClassDefFoundError: LDataSource;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2291)

avec la cause première:

Caused by: java.lang.ClassNotFoundException: DataSource
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1498)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)

Je ne comprends pas comment DataSource peut être "introuvable"! Des idées?

Était-ce utile?

La solution

La prochaine fois que je suis rentré après avoir posé la question, j’ai remarqué une erreur de construction dans Eclipse qui, d’une manière ou d’une autre, a obtenu un JRE supplémentaire dans le chemin marqué "non lié". En regardant autour de mon système, une mise à jour de la version JVM ponctuelle s’est automatiquement créée entre le démarrage d’Eclipse et la construction / déploiement.

Quoi qu'il en soit, supprimez-le, réessayez, travaillez.

Vérifiez donc les erreurs de construction et les problèmes de chemin de génération si vous rencontrez ce problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top