0

我正在尝试将我的应用程序与 jboss 类加载器隔离开来。

我已经在 jboss-classloading.xml 和 jboss-web.xml 中完成了设置,并放入了我的 WEBINF 文件夹。

它解决了这个问题,但开始遇到另一个问题,我继续搜索并且可以将解决方案视为隔离应用程序。你能提供这个问题的解决方案吗..

我正在使用 Jboss 5.1 企业版。

您能否让我知道以下问题正在创建什么。

我尝试了以下选项。

  1. 覆盖应用程序 lib 文件夹中的 xerces jar 并收到此错误

部署异常。

org.jboss.deployers.spi.DeploymentException:异常确定结构:AbstractVFSDeployment(SNAPSHOT.ear) at org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:49) at org.jboss.deployers.structure.spi.helpers.AbstractStructuralDeployers.determineStructure(AbstractStructuralDeployers.java: 85) 在 org.jboss.deployers.plugins.main.MainDeployerImpl.determineDeploymentContext(MainDeployerImpl.java:437) 在 org.jboss.deployers 的 org.jboss.deployers.plugins.main.MainDeployerImpl.determineStructure(MainDeployerImpl.java:1001) .plugins.main.MainDeployerImpl.addDeployment(MainDeployerImpl.java:387) at org.jboss.deployers.plugins.main.MainDeployerImpl.addDeployment(MainDeployerImpl.java:297) at 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.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) 在 org.jboss. .dependency.plugins.AbstractController.install(AbstractController.java:1652) at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:938) at 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.install(AbstractController.java:543)在 org.jboss.system.server.profileservice.repository.AbstractProfileService.registerProfile(AbstractProfileService.java:308) 在 org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:256)> 在 org.jboss。 bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461) 在 org.jboss.Main.boot(Main.java:221) 在 org.jboss.Main$1.run(Main.java:556) 在 java.lang.Thread。运行(线程.java:680)AbstractController.install(AbstractController.java:778) at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:543) at org.jboss.system.server.profileservice.repository.AbstractProfileService.registerProfile(AbstractProfileService.java: 308) 在 org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:256)> 在 org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461) 在 org.jboss.Main.boot( Main.java:221) 在 org.jboss.Main$1.run(Main.java:556) 在 java.lang.Thread.run(Thread.java:680)AbstractController.install(AbstractController.java:778) at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:543) at org.jboss.system.server.profileservice.repository.AbstractProfileService.registerProfile(AbstractProfileService.java: 308) 在 org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:256)> 在 org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461) 在 org.jboss.Main.boot( Main.java:221) 在 org.jboss.Main$1.run(Main.java:556) 在 java.lang.Thread.run(Thread.java:680)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:680)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:680) 引起:java.lang.RuntimeException:错误确定结构: org.jboss.deployment.EARStructure.determineStructure(EARStructure.java:307)的SNAPSHOT.ear org.jboss.deployers.vfs.plugins.structure.StructureDeployerWrapper.determineStructure( StructureDeployerWrapper.java:73) 在 org.jboss.deployers.vfs.plugins.structure.VFSStructuralDeployersImpl.determineStructure(VFSStructuralDeployersImpl.java: org.jboss.deployers.vfs.plugins.structure.VFSStructuralDeployersImpl.doDetermineStructure(VFSStructuralDeployersImpl.java:196) 221) 在 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) at org.jboss.deployers.vfs.plugins.structure.VFSStructuralDeployersImpl.doDetermineStructure(VFSStructuralDeployersImpl.java:196) at org.jboss.deployers.vfs.plugins.structure.VFSStructuralDeployersImpl.determineStructure (VFSStructuralDeployersImpl.java:142) 在 org.jboss.deployers.vfs.spi.structure.StructureContext.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) 在 org.jboss.virtual .plugins.context.zip.ZipEntryContext.ensureEntries(ZipEntryContext.java:636) at org.jboss.virtual.plugins.context.zip.ZipEntryContext.checkIfModified(ZipEntryContext.java:786) at org.jboss.virtual.plugins.context .zip.ZipEntryContext.getChild(ZipEntryContext.java:830) at org.jboss.virtual.plugins.context.zip.ZipEntryHandler.createChildHandler(ZipEntryHandler.java:195) at org.jboss.virtual.plugins.context.AbstractVirtualFileHandler.structuredFindChild (AbstractVirtualFileHandler.java:690) 在 org.jboss.virtual.plugins。context.zip.ZipEntryHandler.getChild(ZipEntryHandler.java:169) at org.jboss.virtual.plugins 2. 我尝试从应用程序中删除 xerces。

您能否让我知道如何识别应用程序正在加载哪个 jar(我尝试运行 classpath.sh)以及哪个 jar 正在创建冲突以及调试此问题的最佳方法是什么。

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>
4

1 回答 1

0

你能检查一下吗?这是 JBoss 5.1 中的一个已知问题

https://issues.jboss.org/browse/JBAS-7210

https://community.jboss.org/thread/152151?_sscc=t

于 2013-08-03T16:34:01.440 回答