ClassNotFoundException (HqlToken) lors de l'exécution dans WebLogic
J'ai un .la guerre de fichier pour une application qui normalement fonctionne très bien sur la Jetée.
Je suis en train de le port de l'application à exécuter dans WebLogic, mais au démarrage j'obtiens ces exceptions:
ERROR:Foo - Error in named query: findBar
org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken [from Bar]
at org.hibernate.hql.ast.HqlLexer.panic(HqlLexer.java:80)
at antlr.CharScanner.setTokenObjectClass(CharScanner.java:340)
at org.hibernate.hql.ast.HqlLexer.setTokenObjectClass(HqlLexer.java:54)
at antlr.CharScanner.<init>(CharScanner.java:51)
at antlr.CharScanner.<init>(CharScanner.java:60)
at org.hibernate.hql.antlr.HqlBaseLexer.<init>(HqlBaseLexer.java:56)
at org.hibernate.hql.antlr.HqlBaseLexer.<init>(HqlBaseLexer.java:53)
at org.hibernate.hql.antlr.HqlBaseLexer.<init>(HqlBaseLexer.java:50)
...
Quelle est la meilleure façon de résoudre ce problème?
Je suis en utilisant Hibernate 3.3.1.GA et WebLogic 10.3.2.0.
OriginalL'auteur leedm777 | 2010-04-23
Vous devez vous connecter pour publier un commentaire.
WebLogic a sa propre version de ANTLR, ce qui provoque le problème auquel vous êtes confronté. Une façon de résoudre ce problème avec une application web est de définir la
prefer-web-inf-classes
élémentweblogic.xml
àtrue
.La
weblogic.xml
va dansWEB-INF
.Pas sûr de ce que le Java EE spec dit à ce sujet mais les parents de la première stratégie semble logique pour moi.
Qu'il fixe. Il a provoqué une salle de ClassCastException, qui a été résolu en suivant les conseils donnés dans ce post: forum.springsource.org/archive/index.php/t-22597.html
Cool! Il fixe mon problème.
OriginalL'auteur Pascal Thivent
À mon avis la meilleure solution pour
war
:Créer le fichier
webapp\WEB-INF\weblogic.xml
et de mettre le texte<prefer-web-inf-classes>
à true, vous pouvez obtenir un grand nombre d'erreurs de doublons libs avec weblogic. Par exemple, "java.lang.LinkageError ... XPath ont différents objets de la Classe"OriginalL'auteur Alexander Trofimov
Si vous avez un projet EAR, comme moi, alors vous avez besoin d'ajouter cet élément à weblogic oreille descripteur de déploiement [weblogic-application.xml]
OriginalL'auteur shane lee
Je voulais déployer fichier WAR sur weblogic 11g (Weblogic Server 10.3.5). Normalement, dans une application web, on aura web.xml. Afin de rendre Weblogic ramasser les catégories mentionnées dans web.xml, nous avons besoin d'inclure un fichier dans WEB-INF/weblogic.xml. Ci-dessous est le code.
Cela a résolu le problème pour moi et j'ai été en mesure de déployer la GUERRE sur weblogic. S'il vous plaît activer web de l'option d'archivage de weblogic console.
OriginalL'auteur Karthik N G
J'ai eu une OREILLE, j'ai donc dû ajouter un fichier META-INF/weblogic-application.xml
Le fichier lui-même est très simple, c'est pour Oracle WebLogic 11g, une.k.un. WebLogic Server 10.3.x:
OriginalL'auteur Ed Griebel
Pour ceux d'entre vous qui ont essayé la décision de déclarer la
antlr
espace de noms "préférez-application-paquets" dans leweblogic-application.xml
descripteur et qui ont toujours le même problème, vous pouvez essayer de remplacer le classpath de l'weblogic-domaine dans le script de démarrage avec les bibliothèques de votre projet directement:De le faire exécuter les étapes suivantes:
1.) Trouver le fichier
bin/startWeblogic.[sh|cmd]
dans votre domaine Weblogic maison2.) trouver la ligne qui dit
set SAVE_CLASSPATH=
3.) Remplacer avec cette (sur windows, s'adapter en conséquence pour mac/*nix)
4.) Enregistrer, de (re-)commencer votre domaine weblogic et croiser les doigts.
Nota bene: ce n'est probablement pas une bonne idée si votre domaine est à la maison à plus d'un déployés artefact. Il peut aussi, dans certains cas, être adivsable à seulement choisissez le jar fichiers à partir de votre WEB-INF/lib du dossier. Bien sûr, si vous utilisez maven, vous aurez besoin d'héberger ces bibliothèques à un autre endroit.
Cette solution fonctionne également avec le Weblogic Server démarré depuis l'éclipse de la vue des Serveurs, puisque l'Oracle Weblogic adaptateur utilise le script de ligne de commande pour démarrer le serveur.
OriginalL'auteur mwhs