0

我有一个将 Apache Axis SOAP 客户端代理实例化为 Spring bean 的 J2EE Web 应用程序。

当我第一次将应用程序部署到 Glassfish 3 服务器时,它成功了。但是,如果我取消部署并重新部署应用程序,我会收到以下错误(在 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

如果我重新启动域并重新部署,它会再次成功。

任何想法为什么会发生这种情况?

4

1 回答 1

1

这是由 Axis 库中的类加载器泄漏引起的。最简单的解决方法是将 Axis jar 部署到应用程序本身中,而不是作为共享域库的一部分。

于 2010-10-10T22:20:14.540 回答