2010-03-02 4 views
2

Avec RAD Version: 7.5.3, Java 1.5.Rational Application Developer (RAD) 7.5+ et websphere runtime ne récupèrent pas les fichiers JAR des projets

J'ai plusieurs projets différents. J'avais besoin de sortir le code java et de transformer les fichiers * .class en pot. Donc, fondamentalement, les mêmes fichiers * .class que je viens de supprimer le code, puis jarré les fichiers de classe dans un pot. J'ai cassé les classes dans un pot et ensuite inclus le pot dans le projet. Et j'ai également fait une commande/exportation sur le pot afin que d'autres projets puissent voir le pot.

À ce stade, idéalement, mon projet ne devrait pas avoir changé car j'utilise des fichiers de classe dans un pot au lieu du code java. Lorsque je visite mon application web dans websphere, j'obtiens des erreurs de classe non trouvée sur les classes qui sont maintenant dans le jar.

Structure du projet:

A. Project earApp -- will need the webapp 
B. Project webapp -- will need the project (no jar files or *.java files are found in this project) 
C. Project javasrc -- the java source and the NEW JAR file are found here. 

Je ne pense pas que Websphere reconnaît le pot.

Voici l'erreur:

java.lang.NoClassDefFoundError: com.MyApp 
at java.lang.ClassLoader.defineClassImpl(Native Method) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:258) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151) 
at com.ibm.ws.classloader.CompoundClassLoader._defineClass(CompoundClassLoader.java:675) 
at com.ibm.ws.classloader.CompoundClassLoader.findClass(CompoundClassLoader.java:614) 
at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:431) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:597) 
at java.lang.Class.getDeclaredMethodsImpl(Native Method) 
at java.lang.Class.getDeclaredMethods(Class.java:664) 
at com.ibm.ws.webcontainer.annotation.data.ScannedAnnotationData.collectMethodAnnotations(ScannedAnnotationData.java:130) 
at com.ibm.ws.webcontainer.annotation.data.ScannedAnnotationData.<init>(ScannedAnnotationData.java:47) 
at com.ibm.ws.webcontainer.annotation.AnnotationScanner.scanClass(AnnotationScanner.java:61) 
at com.ibm.ws.wswebcontainer.webapp.WebApp.processRuntimeAnnotationHelpers(WebApp.java:711) 
at com.ibm.ws.wswebcontainer.webapp.WebApp.populateJavaNameSpace(WebApp.java:624) 
at com.ibm.ws.wswebcontainer.webapp.WebApp.initialize(WebApp.java:289) 
at com.ibm.ws.wswebcontainer.webapp.WebGroup.addWebApplication(WebGroup.java:93) 
at com.ibm.ws.wswebcontainer.VirtualHost.addWebApplication(VirtualHost.java:162) 
at com.ibm.ws.wswebcontainer.WebContainer.addWebApp(WebContainer.java:671) 
at com.ibm.ws.wswebcontainer.WebContainer.addWebApplication(WebContainer.java:624) 
at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:395) 
at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:611) 
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1274) 
at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1165) 
at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:587) 
at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:832) 
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:921) 
at com.ibm.ws.runtime.component.ApplicationMgrImpl$AppInitializer.run(ApplicationMgrImpl.java:2124) 
at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:342) 
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497) 

Que pensez-vous que je dois faire?

Répondre

3

Nous avons eu le même problème quand nous sommes passés à WAS 7.0

Apparemment WAS 7.0 a changé la façon dont il regarde ses dépendances, et vous devez vous assurer que les fichiers JAR que vous créez sont également mentionnés dans le fichier manifeste où ils sont utilisés. Par conséquent, si vous l'utilisez à la fois dans le projet EJB et dans le projet Web, vous devrez mettre à jour les deux fichiers manifest pour référencer le fichier JAR.

+0

quel est exactement le manifeste dans Web Project que vous mentionnez. Je suppose que ce n'est pas le fichier web.xml non? – Juriy

1

avez-vous ajouté le jar aux dépendances du module Java EE dans la boîte de dialogue des propriétés du projet? Le jar est-il répertorié sous le nœud EAR ou bibliothèques Web dans l'explorateur de packages?

+0

Je n'arrivais toujours pas à comprendre. J'ai ajouté le jar aux dépendances du module Java EE pour la webapp. Je n'ai pas changé de configuration avec l'EAR. Mais pourquoi un pot d'un projet doit-il être configuré au niveau EAR ou WebApp. Cela fait partie de mon projet source et je l'exporte? Temporairement, je viens de copier le fichier jar dans le répertoire WEB-INF/lib sous la webapp. Et cela fonctionne pour l'exécution websphere. Mais ce n'est pas ce que je voulais vraiment. –

+0

Qu'avez-vous fait initialement? créer un pot avec 'export to jar' depuis eclipse, avez-vous ensuite placé ce fichier quelque part dans le projet javasrc et l'avez ajouté au chemin de construction java du projet web? Si c'est le cas, vous devez toujours indiquer à éclipse que ce fichier doit être copié dans WEB-INF/lib lorsque vous exécutez/générez le fichier WAR/EAR. une meilleure option serait de configurer le chemin de construction pour inclure le projet javasrc en tant que dépendance, puis dans java ee deps cocher la case pour ce projet. ce –

0

J'ai eu le même problème jusqu'à ce que je copie le jar à WebContent/WEB-INF/lib. Tu pourrais essayer ça.

Questions connexes