Incompatible neethi.jar avec A 7
Je suis le déploiement d'une application Apache CXF-2.7.5 avec neethi-3.0.2 dans
websphere 7. Je suis d'erreur ci-dessous. Ma Demande est printemps entraîné.
Quand j'ai dégradé Apache CXF pour apache CXF-2.3.5. Application avec succès
déployé.
La même fonctionne parfaitement dans Tomcat7.
Je suis en mesure de reproduire ce problème sur Tomcat par l'ajout (ou la suppression) d'une dépendance de neethi.jar (avec une version plus ancienne --> 2.5.x) pom.xml fichier.
Remarque: Apache CXF 2.7.5 est livré avec la dernière version de neethi.jar (3.0.2), donc ne pas causer de problème sur Tomcat7.
Est Web de la sphère de la cueillette jusqu'à une ancienne version de neethi.jar
Trace de la pile est ci-dessous :
[7/9/13 19:46:38:577 GMT+05:30] 00000012 FfdcProvider I com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/ffdc/server1_2a7e2a7e_13.07.09_19.46.38.57558021.txt com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest() 309
[7/9/13 19:46:38:582 GMT+05:30] 00000012 webapp E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[CXFServlet]: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cxf' defined in class path resource [META-INF/cxf/cxf.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.apache.cxf.bus.spring.SpringBus]: Constructor threw exception; nested exception is org.apache.cxf.bus.extension.ExtensionException: Could not load extension class org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl.
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:997)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:943)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:609)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:469)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
at com.ibm.ws.webcontainer.webapp.WebApp.notifyServletContextCreated(WebApp.java:1588)
at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinish(WebApp.java:350)
at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:292)
at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:99)
at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:167)
at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java:722)
Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.apache.cxf.bus.spring.SpringBus]: Constructor threw exception; nested exception is org.apache.cxf.bus.extension.ExtensionException: Could not load extension class org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl.
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:162)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:76)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:990)
... 35 more
Caused by: org.apache.cxf.bus.extension.ExtensionException: Could not load extension class org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl.
at org.apache.cxf.bus.extension.Extension.tryClass(Extension.java:173)
at org.apache.cxf.bus.extension.Extension.getClassObject(Extension.java:185)
at org.apache.cxf.bus.extension.ExtensionManagerImpl.activateAllByType(ExtensionManagerImpl.java:138)
at org.apache.cxf.bus.extension.ExtensionManagerBus.<init>(ExtensionManagerBus.java:126)
at org.apache.cxf.bus.extension.ExtensionManagerBus.<init>(ExtensionManagerBus.java:138)
at org.apache.cxf.bus.spring.SpringBus.<init>(SpringBus.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:45)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:39)
at java.lang.reflect.Constructor.newInstance(Constructor.java:515)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147)
... 37 more
Caused by: java.lang.IncompatibleClassChangeError: org.apache.neethi.AssertionBuilderFactory
at java.lang.ClassLoader.defineClassImpl(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:265)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at com.ibm.ws.classloader.CompoundClassLoader._defineClass(CompoundClassLoader.java:726)
at com.ibm.ws.classloader.CompoundClassLoader.localFindClass(CompoundClassLoader.java:645)
at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:468)
at java.lang.ClassLoader.loadClass(ClassLoader.java:609)
S'il vous plaît aider
OriginalL'auteur Bhuvan | 2013-07-10
Vous devez vous connecter pour publier un commentaire.
J'ai eu à faire 'parent_last' de chargement de classe au module web de niveau et de supprimer les fichiers jar suivants de la GUERRE:-
C'est à cause de la AssertionBuilderFactory était une mise en œuvre dans la version 2.0.5 de neethi.jar mais il est une interface en 3.0.2 qui nous aide en raison de CXF 2.7.5.
Depuis ces fichiers jar sont automatiquement ajoutés au moment de la construction en raison de CXF de dépendances, je pense que nous allons devoir supprimer manuellement ces pots de GUERRE avant le déploiement dans l'EST. Aussi à chaque déploiement, nous allons devoir changer de Classe Chargeur de réglage pour notre GUERRE.
De changer le Chargeur de Classe de l'ordre, utilisez chemin d'accès suivant:-
Les Applications d'entreprise > MyApplicationWAR > Gérer les Modules > MyApplicationWAR
EDIT:
Vous pouvez faire de même à partir de votre POM fichier à l'aide de
<exclusions>
tag<exclusions>
balise dans votre maven dependency définition. Ce serait beaucoup plus facile que de supprimer manuellement le fichier war.Oui, vous avez raison. J'ai aussi fait de cette façon. La mise à jour de la réponse
avez-vous essayez de configurer la JVM du serveur d'application lui-même d'utiliser la relation parent-dernière classe de chargement?
Non, le ci-dessus résolu mon problème. Je ne travaille plus sur ce projet.
OriginalL'auteur Bhuvan
Oui, il est possible que A est d'avoir une ancienne version de neethi.
Vous devriez vérifier le dossier lib de websphere pour voir si il y a ancienne version de neethi jar. Vous pouvez aussi avoir besoin pour configurer votre conteneur pour activer l'auto-première classloading façon, si il y a neethi conflit de version.
Une autre option est de déployer le nécessaire neethi.jar dans approuvée répertoire, puis démarrez la VM avec les paramètres appropriés.
OriginalL'auteur Mubin
Je vous suggère d'essayer le réglage de la classe loader propriétés de a ÉTÉ.
Il faut d'application du chargeur de classe premier au lieu chargeur de classe parent. Avec cela, ÉTAIT de ramasser le pot que vous avez emballé à l'intérieur de l'application. HTH
OriginalL'auteur paary
Quel est l'impact de la suppression de la suite de trois vases sur la solution au problème? J'ai un problème similaire mais avec un test junit plutôt que l'exécution en ÉTAIT. J'ai neethi-3.0.1.jar et cxf-rt-core-2.7.4.jar dans mon pompon. Cependant, je reçois toujours la java.lang.IncompatibleClassChangeError: org.apache.neethi.AssertionBuilderFactory
au org.apache.cxf.bus.l'extension.Extension
donc je suppose que je suis en quelque sorte toujours l'ancienne version de neethi sur le chemin de la classe.
Comment puis-je résoudre ce problème?
geronimo-servlet_3.0_spec-1.0.jar
geronimo-javamail_1.4_spec-1.7.1.jar
stax-api-1.0.1.jar
J'ai soumis une nouvelle question.
OriginalL'auteur jimmy
Mettre la dernière version neethi.jar dans le entériné répertoire à l'intérieur de vous Websphere Java pour une solution rapide, redémarrez votre JVM et de l'essayer.
OriginalL'auteur Sandeep Raman