2010-10-11 16 views
0

J'ai créé un portlet jsf 1.1 dans weblogic 10.3, mais dans un scénario j'ai besoin de l'aide de la bibliothèque tomahawk. Je viens de déposer le fichier jar et les fichiers de support dans le dossier lib dans WEB-INF dans mon application de portail, mais quand je clique sur l'url ça me donne une erreur de NoClassdef ..... exception pour les classes de tomahawk jar et jsp compilation échoue.tomahawk jar ne se fait pas charger le portail weblogic 10.3

Je suis nouveau à weblogic, j'apprécierai vraiment si someoe peut suggérer ce que je pourrais faire mal.

La configuration est que l'application entière va comme une oreille. Ear contient des fichiers xml spécifiques à app-inf et à weblogic, l'application web principale du portail va en guerre dans cette oreille. J'utilise un atelier qui est livré avec le portail weblogic 10.3. Eh bien, ce projet a été migré à partir du portail weblogic 9.3.

Note: Je ne veux pas mais ce jar dans domain/lib, quand je l'ai fait, je ne sais pas pourquoi il a chargé mon application et toute la classe définie dans le démarrage de servlet avec load-on-startups Aucune des classes n'a été trouvée par le serveur.

Les bibliothèques Jsf actuellement utilisées sont en mode partagé.

Répondre

1

java.lang.NoClassDefFoundError signifie que la version d'exécution de la classe dans le chemin de classe est et non la même que celle de la compilation.

Remarque: c'est pas une ClassNotFoundException.

Votre problème est en fait plusieurs versions de la classe trouvée.

En outre, les bibliothèques JSF 1.2 sont fournies avec le serveur Weblogic, ce qui peut provoquer cette exception si l'une de ces classes est à nouveau ajoutée dans WEB-INF/lib. Quelle est la classe exacte sur laquelle l'erreur est lancée, avez-vous plusieurs versions de Tomahawk dans WEB-INF et domain/lib?

Supprimez les extras et conservez-en un dans WEB-INF/lib uniquement.

Mise à jour:

Le docs state que Separate JSF 1.2 and JSTL 1.2 JAR files and implementation JAR files are also provided in the WL_HOME/server/lib/api.jar file.

Vérifiez pour cette classe javax/faces/webapp/UIComponentELTag dans ce pot.

Je pense toujours que vous devez utiliser le paramètre weblogic.xml pour forcer la classe WEB-INF/lib pour se charger de préférence à celle dans le serveur/lib avec

<container-descriptor> 
    <prefer-web-inf-classes>true</prefer-web-inf-classes> 
    </container-descriptor> 
+0

Exception produite lors du traitement « xxxx.jsp'java.lang.NoClassDefFoundError: org/apache/myfaces/shared_tomahawk/taglib/core/ParamTag: javax/faces/webapp/UIComponentELTag à java.lang.ClassLoader.defineClass1 (native méthode) à java.lang.ClassLoader.defineClass (ClassLoader.java:621) à java.security.SecureClassLoader.defineClass (SecureClassLoader.java:124) à weblogic.utils.classloaders.GenericClassLoader.defineClass (GenericClassLoader.java: 344) à weblogic.utils.classloaders.GenericClassLoader.findLocalClass (GenericClassLoader.java:301) –

+0

Je n'ai qu'un pot de tomahawk dans web-inf.Et le seul tag de cette bibliothèque que j'utilise est . J'utilise eclipse pour weblogic 10.3.2 pour le développement. La bibliothèque jsf est du soleil et en mode partagé. J'ai vérifié le pot que cette classe est présente dans le pot. –

+0

@ user458248: UIComponentELTag est JSF 1.2, pas 1.1. Et la classe dont il se plaint est javax/faces/webapp/UIComponentELTag. Cette classe se trouve dans ces pots. http://www.jarfinder.com/index.php/java/info/javax.faces.webapp.UIComponentELTag. Je ne sais pas si l'un d'entre eux est également inclus dans weblogic. Avez-vous des copies multiples de ces pots dans le WEB-INF? Essayez le paramètre prefer-web-inf-classes que j'ai écrit dans la réponse originale. – JoseK

0

Étant nouveau weblogic et de l'infrastructure, je foiré avec des versions différentes. Imaginé que c'était juste à cause de pots incompatibles.