2013-08-03 29 views
0

我試圖隔離我的應用程序從jboss類加載器。問題與Jboss同時隔離類jar的

我已經完成了jboss-classloading.xml和jboss-web.xml中的設置並放入我的WEBINF文件夾。

它解決了這個問題,但開始出現另一個問題,我繼續搜索,並可能將解決方案視爲隔離應用程序。您能否爲此問題提供解決方案..

我正在使用Jboss 5.1企業版。

請你讓我知道下面的問題是在創建什麼。

我試過下面的選項。

  1. 覆蓋的Xerces罐子應用lib文件夾中,並得到這個錯誤

部署例外。

org.jboss.deployers.spi.DeploymentException:異常確定結構:AbstractVFSDeployment(SNAPSHOT.ear) 在org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:49) 在org.jboss.deployers.structure.spi.helpers.AbstractStructuralDeployers.determineStructure(AbstractStructuralDeployers.java:85) at org.jboss.deployers.plugins.main.MainDeployerImpl.determineStructure(MainDeployerImpl.java:1001) at org.jboss。 deployers.plugins.main.MainDeployerImpl.determineDeploymentContext(MainDeployerImpl.java:437) at org.jboss.deployers.plugins.main。 MainDeployerImpl.addDeployment(MainDeployerImpl.java:387) 在org.jboss.deployers.plugins.main.MainDeployerImpl.addDeployment(MainDeployerImpl.java:297) 在org.jboss.system.server.profileservice.repository.MainDeployerAdapter.addDeployment( MainDeployerAdapter.java:86) at org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:61) at org.jboss.system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction。的java:53) 在org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:403) 在org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) 在org.jboss.dependency.plugins.AbstractController。安裝(AbstractController.java:1652) 在org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:938) 在org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082) 在org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:988) at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:778) at org.jboss.dependency.plugins.AbstractController。安裝(AbstractController.java:543) at org.jboss.system.server.profileservice.repository.AbstractProfileService.registerProfile(AbstractProfileService.java:308) at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap。 java:256)> at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461) at org.jboss.Main.boot(Main.java:221) at org.jboss.Main $ 1.run(Main.java:556 ) at java.lang.Thread.run(Thread。的java:了java.lang.RuntimeException::680) 致錯誤確定結構:SNAPSHOT.ear 在org.jboss.deployment.EARStructure.determineStructure(EARStructure.java:307) 在org.jboss.deployers.vfs .plugins.structure.StructureDeployerWrapper.determineStructure(StructureDeployerWrapper.java:73) 在org.jboss.deployers.vfs.plugins.structure.VFSStructuralDeployersImpl.doDetermineStructure(VFSStructuralDeployersImpl.java:196) 在org.jboss.deployers.vfs.plugins .structure.VFSStructuralDeployersImpl.determineStructure(VFSStructuralDeployersImpl.java:221) at org.jboss.deployers.structure.spi.helpers.AbstractStructuralDeployers.determineStructure(AbstractStructuralDeployers.java:77) ... 21更多 引起:org.jboss.deployers.spi.DeploymentException:錯誤確定結構:SNAPSHOT.war 在org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:49) 在org.jboss.web .deployers.WARStructure.determineStructure(WARStructure.java:248) 在org.jboss.deployers.vfs.plugins.structure.StructureDeployerWrapper.determineStructure(StructureDeployerWrapper.java:73) 在org.jboss.deployers.vfs.plugins.structure .VFSStructuralDeployersImpl.doDetermineStructure(VFSStructuralDeployersImpl.java:196) 在org.jboss.deployers.vfs.plugins.structure.VFSStructuralDeployersImpl.determineStructure(VFSStructuralDeployersImpl.java:142) 在org.jboss.deployers.vfs.spi.structure.Struc tureContext.determineChildStructure(StructureContext.java:294) 在org.jboss.deployment.EARStructure.determineStructure(EARStructure.java:277) ...... 25多個 引起:了java.lang.RuntimeException:java.util.zip .ZipException:在開口zip文件錯誤 在org.jboss.virtual.plugins.context.AbstractExceptionHandler.handleZipEntriesInitException(AbstractExceptionHandler.java:39) 在org.jboss.virtual.plugins.context.helpers.NamesExceptionHandler.handleZipEntriesInitException(NamesExceptionHandler .java:63) at org.jboss.virtual.plugins.context.zip.ZipEntryContext.ensureEntries(ZipEntryContext.java:636) at org.jboss.virtual.plugins.context.zip.ZipEntryContext.checkIfModified(ZipEntryContext.java :786) 在org.jboss.virtual.plugins.context.zip.ZipEntryContext.getChild(ZipEntryContext.java:830) 在org.jboss.virtual.plugins.context.zip.ZipEntryHandler.createChildHandler(ZipEntryHandler.java:195) 在org.jboss.virtual.plugins.context.AbstractVirtualFileHandler.structuredFindChild(AbstractVirtualFileHandler.java:690) 在org.jboss.virtual.plugins.context.zip.ZipEntryHandler.getChild(ZipEntryHandler.java:169) 在org.jboss。 virtual.plugins 2.我嘗試從應用程序中刪除xerces。

可否請你讓我知道如何識別應用程序加載該JAR(我試過運行classpath.sh)和罐子產生衝突&什麼是調試這個問題的最佳方式。

Exception sending context initialized event to listener instance of class org.jboss.web.jsf.integration.config.JBossJSFConfigureListener 
java.lang.ClassCastException: org.apache.xerces.jaxp.SAXParserFactoryImpl cannot be cast to javax.xml.parsers.SAXParserFactory 
    at javax.xml.parsers.SAXParserFactory.newInstance(SAXParserFactory.java:128) 
    at com.sun.faces.config.ConfigureListener$WebXmlProcessor.getConfiguredFactory(ConfigureListener.java:702) 
    at com.sun.faces.config.ConfigureListener$WebXmlProcessor.scanForFacesServlet(ConfigureListener.java:674) 
    at com.sun.faces.config.ConfigureListener$WebXmlProcessor.<init>(ConfigureListener.java:648) 
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:156) 
    at org.jboss.web.jsf.integration.config.JBossJSFConfigureListener.contextInitialized(JBossJSFConfigureListener.java:60) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3910) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4389) 
    at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:321) 
    at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:145) 
    at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:461) 
    at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118) 
    at org.jboss.web.deployers.WebModule.start(WebModule.java:97) 
    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:597) 
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157) 
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96) 
    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:668) 
    at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206) 
    at com.sun.proxy.$Proxy38.start(Unknown Source) 

新增的jboss-web.xml中

  <?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 5.0//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd"> 
    <jboss-web> 
     <class-loading java2ClassLoadingCompliance="false">              
      <loader-repository>com.example:archive=SNAPSHOT.ear 
       <loader-repository-config>java2ParentDelegation=false</loader-repository-config> 
      </loader-repository> 
     </class-loading> 
    <context-root>/contextroot</context-root> 

    </jboss-web> 

新增的jboss-classloading.xml

<classloading xmlns="urn:jboss:classloading:1.0" 
    name="SNAPSHOT.ear" 
    domain="myDomain" 
    parent-first="false" 
    parent-domain="DefaultDomain" 
    top-level-classloader="true" 
    export-all="NON_EMPTY" 
    import-all="false"> 
</classloading> 
+0

你想用你的自定義類加載器加載應用程序類?如果是,那麼你能否提供關於你的自定義類加載器的細節? – AKS

+0

<類加載的xmlns = 「甕:JBoss的:類加載:1.0」 \t名稱= 「SNAPSHOT.ear」 \t域= 「myDomain的」 \t父 - 第一= 「假」 父域= 「默認域」 頂level-classloader =「true」 \t export-all =「NON_EMPTY」 \t import-all =「false」> Adam

+0

還添加了jboss-web.xml。 – Adam

回答