2011-09-05 8 views
2

Axis 2 웹 응용 프로그램을 배포하는 데 문제가 있습니다. Jboss 4.2.0을 사용하고 있습니다. 이미 Axis 2 클라이언트를 사용하는 웹 응용 프로그램이 있습니다. 배치하려고하는이 Axis 2 애플리케이션은 실제로 Axis 2 웹 애플리케이션의 "services"폴더에 저장되는 .aar 확장자를 가진 아카이브 서비스입니다. 후자는 앤트 빌더를 사용하여 만들어지며 결과로 생성되는 .war 파일은 내가 배포 할 파일입니다. 이제 Jboss의 deploy 폴더에서 이전 응용 프로그램을 제거하면 새 응용 프로그램이 올바르게 작동합니다. 내가 다시 이전 응용 프로그램을 다시 배포 할 때, 나는 제이 보스에서 다음과 같은 예외를 얻을 :Jboss에서 Axis2.jar 충돌이 발생했습니다.

13:58:44,382 INFO [AxisServlet] org.apache.axis2.AxisFault: The system is attempting to engage a module that is not available: addressing 
13:58:44,383 ERROR [[/axis2]] Servlet /axis2 threw load() exception 
org.apache.axis2.AxisFault: The system is attempting to engage a module that is not available: addressing 
     at org.apache.axis2.engine.AxisConfiguration.engageModule(AxisConfiguration.java:464) 
     at org.apache.axis2.engine.AxisConfiguration.engageGlobalModules(AxisConfiguration.java:591) 
     at org.apache.axis2.deployment.DeploymentEngine.engageModules(DeploymentEngine.java:615) 
     at org.apache.axis2.deployment.WarBasedAxisConfigurator.engageGlobalModules(WarBasedAxisConfigurator.java:301) 
     at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:81) 
     at org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:516) 
     at org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:436) 
     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161) 
     at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981) 
     at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4069) 
     at org.apache.catalina.core.StandardContext.start(StandardContext.java:4373) 
     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:761) 
     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:741) 
     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:553) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:585) 
     at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297) 
     at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164) 
     at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
     at org.apache.catalina.core.StandardContext.init(StandardContext.java:5310) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:585) 
     at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297) 
     at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164) 
     at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
     at org.jboss.web.tomcat.service.TomcatDeployer.performDeployInternal(TomcatDeployer.java:301) 
     at org.jboss.web.tomcat.service.TomcatDeployer.performDeploy(TomcatDeployer.java:104) 
     at org.jboss.web.AbstractWebDeployer.start(AbstractWebDeployer.java:375) 
     at org.jboss.web.WebModule.startModule(WebModule.java:83) 
     at org.jboss.web.WebModule.startService(WebModule.java:61) 
     at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289) 
     at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245) 
     at sun.reflect.GeneratedMethodAccessor138.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:585) 
     at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
     at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
     at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) 
     at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
     at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
     at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978) 
     at $Proxy0.start(Unknown Source) 
     at org.jboss.system.ServiceController.start(ServiceController.java:417) 
     at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:585) 
     at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
     at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
     at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) 
     at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
     at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
     at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) 
     at $Proxy45.start(Unknown Source) 
     at org.jboss.web.AbstractWebContainer.start(AbstractWebContainer.java:466) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:585) 
     at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
     at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
     at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133) 
     at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 
     at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142) 
     at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97) 
     at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238) 
     at org.jboss.ws.integration.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:93) 
     at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188) 
     at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95) 
     at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 
     at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
     at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
     at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) 
     at $Proxy46.start(Unknown Source) 
     at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025) 
     at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819) 
     at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782) 
     at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:585) 
     at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
     at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
     at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133) 
     at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 
     at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142) 
     at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 
     at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
     at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
     at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) 
     at $Proxy9.deploy(Unknown Source) 
     at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421) 
     at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634) 
     at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263) 
     at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274) 
     at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225) 

내 생각 엔 제이 보스는 이전의 된 .ear 내에 존재하는 axis2-1.4.1.jar 파일 사이에 충돌된다는 것이다 응용 프로그램 및 Axis 2 웹 응용 프로그램의 axis2.jar을 사용하여 배포하려고합니다. 누구든지 내 문제에 대한 해결책을 가지고 있습니까?

답변

1

나는이 문제를 해결할 수 있었다. 내 초기 가정은 정확했다. 내 문제는 axis2-1.4.1.jar jar 파일이 들어있는 .ear 프로젝트를 처음 배포 할 때 응용 프로그램의 클래스 로더가 자신을 클래스 로더로 등록하여 모든 클래스를로드 할 수 있다는 것이다. 다른 클래스 로더가 그 클래스를 제공 할 수 없으므로 .jar 파일에 있습니다. (자세한 내용은 다음 링크를 확인하십시오. 1 "> http://thorgull.be/doku.php?id=tutorials:jboss:classloaderisolation#fnt_1 http://community.jboss.org/wiki/JBossClassLoadingUseCases )

문제를 해결하려면, 나는 그것이 된 .ear 프로젝트의 이후) (JBoss의-app.xml 파일을 생성하고 다음 추가 :이 변경으로

<?xml version="1.0" encoding="UTF-8" ?> 
<jboss-app> 
    <loader-repository> 
    mypackage:loader="myapplication.ear" 
    </loader-repository> 
</jboss-app> 

, 별도의 자식 저장소를 내 .ear 응용 프로그램 용으로 만들어 질 것입니다 (분리 모드라고합니다). 동일한 패키지/클래스의 다른 버전을 가지고있어서 발생할 수있는 문제를 해결하고, o를 실행하려고합니다. n Jboss의 동일한 인스턴스.

격리 할 응용 프로그램과 패키지/클래스의 루트 리포지토리에 위임해야하는 다른 솔루션을 쉽게 제어 할 수있는 또 다른 솔루션은 ear-deployer.xml을 수정하는 것입니다 (deploy 폴더에서 찾을 수 있음).) 및 다음 XML 요소 설정 :

<attribute name="Isolated">false</attribute> 

사실합니다.

클래스 게시자의 작동 방식을 더 잘 이해하려면 필자의 게시물에 포함 된 참고 자료를 읽어보십시오.

행운을 빈다.

관련 문제