2010-08-20 25 views
0

J'ai une application Web J2EE qui instancie un proxy client Apache Axis SOAP en tant que bean Spring.Impossible de redéployer .WAR utilisant Axis dans Glassfish 3

Lorsque je déploie l'application dans un serveur Glassfish 3 pour la première fois, elle réussit. Cependant, si je et annuler le déploiement redéployer l'application, je reçois l'erreur suivante (en bas du stacktrace Spring):

Instantiation of bean failed; nested exception is 
org.springframework.beans.factory.BeanDefinitionStoreException: Factory method 
[com.foo.bar.FooServicePortType com.foo.bar.config.ApplicationConfig.backendService()] threw exception; 
nested exception is java.lang.RuntimeException: 
java.lang.IllegalStateException: WEB9031: WebappClassLoader unable to load resource 
[META-INF/services/org.apache.axis.EngineConfigurationFactory], 
because it has not yet been started, or was already stopped 

Si je redémarre le domaine et redéployer, il réussit à nouveau.

Des idées pour lesquelles cela se passe?

Répondre

1

Cela a été provoqué par une fuite de classloader dans la bibliothèque Axis. La solution la plus simple consiste à déployer les fichiers jar Axis dans l'application elle-même et non dans le cadre des bibliothèques de domaines partagés.

+0

Merci Jacob .. Je avais le même problème et résolu en supprimant les fichiers jar JAX-RPC et AXIS du dossier ext Bibliothèque de domaine partagé –