我正在将一个EAR文件从JBoss 5迁移到Jboss EAP 6.4。 我添加了一个自定义模块com.documentum.dfc,其中包含我的EAR所需的所有类。 奇怪的是,我清楚地看到一些正在加载的类(com.documentum ...),但它仍然无法找到在与成功实例化的类相同的jar文件中提供的Factory类。 我想这与通过另一个类加载器加载的Factory机制有关,或者在这个特定的类中查找错误位置的类加载器。它应该在com.documentum.dfc模块中搜索它,但它似乎在org.jboss.as.jmx中搜索:main
知道这里出了什么问题吗?
Caused by: javax.xml.parsers.FactoryConfigurationError: Provider com.documentum.xml.jaxp.DfDocumentBuilderFactoryImpl not found
at com.documentum.xml.jaxp.DfDocumentBuilderFactory.newInstance(DfDocumentBuilderFactory.java:27)
at com.documentum.xml.common.DfParserFactory.<init>(DfParserFactory.java:40)
at com.documentum.xml.common.DfParserFactory.getInstance(DfParserFactory.java:62)
at com.documentum.fc.internal.xml.XMLUtilsFactory.getParserFactory(XMLUtilsFactory.java:17)
at com.documentum.fc.client.impl.bof.cache.CacheManifest.initCacheContentFile(CacheManifest.java:534)
at com.documentum.fc.client.impl.bof.cache.CacheManifest.init(CacheManifest.java:45)
at com.documentum.fc.client.impl.bof.cache.DefaultLocalAccessor.init(DefaultLocalAccessor.java:23)
at com.documentum.fc.client.impl.bof.cache.ClassCacheManager.initDocbase(ClassCacheManager.java:597)
at com.documentum.fc.client.impl.bof.cache.ClassCacheManager.initialDiscovery(ClassCacheManager.java:588)
at com.documentum.fc.client.impl.bof.cache.ClassCacheManager.<init>(ClassCacheManager.java:440)
at com.documentum.fc.client.impl.bof.cache.ClassCacheManager.getInstance(ClassCacheManager.java:52)
at com.documentum.fc.client.impl.bof.classmgmt.ModuleManager.init(ModuleManager.java:317)
at com.documentum.fc.client.impl.bof.classmgmt.ModuleManager.getInstance(ModuleManager.java:43)
at com.documentum.fc.client.security.impl.DfcIdentityPublisher.<init>(DfcIdentityPublisher.java:44)
at com.documentum.fc.client.security.internal.RegistrationMgr.register(RegistrationMgr.java:34)
at com.documentum.fc.impl.RuntimeContext.<clinit>(RuntimeContext.java:195)
at com.documentum.fc.client.DfClient.<clinit>(DfClient.java:772)
at com.documentum.com.DfClientX.getLocalClient(DfClientX.java:43)
at nl.enexis.service.mbean.dctm.DctmSessionManager.init(DctmSessionManager.java:43)
at nl.enexis.service.mbean.dctm.DctmSessionManager.<init>(DctmSessionManager.java:34)
at nl.enexis.service.mbean.dctm.DctmConnectionService.getSessionManager(DctmConnectionService.java:33)
at nl.enexis.service.mbean.dctm.DctmConnectionService.startService(DctmConnectionService.java:58)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:258)
at org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:165)
at org.jboss.system.ServiceMBeanSupport.jbossInternalCreate(ServiceMBeanSupport.java:236)
at org.jboss.system.ServiceMBeanSupport.create(ServiceMBeanSupport.java:161)
at org.jboss.system.ServiceMBeanSupport.postRegister(ServiceMBeanSupport.java:377)
at com.sun.jmx.mbeanserver.MBeanSupport.postRegister(MBeanSupport.java:182) [rt.jar:1.7.0_80]
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.postRegister(DefaultMBeanServerInterceptor.java:1024) [rt.jar:1.7.0_80]
... 12 more
Caused by: java.lang.ClassNotFoundException: com.documentum.xml.jaxp.DfDocumentBuilderFactoryImpl from [Module "org.jboss.as.jmx:main" from local module loader @44f218 (finder: local module finder @724357 (roots: d:\Programs\JBossEAP-6.4.0\modules,d:\Programs\JBossEAP-6.4.0\modules\system\layers\base\.overlays\layer-base-jboss-eap-6.4.14.CP,d:\Programs\JBossEAP-6.4.0\modules\system\layers\base))]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:211) [jboss-modules.jar:1.3.8.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.8.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.8.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.8.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.8.Final-redhat-1]
at com.documentum.xml.jaxp.DfFactoryFinder.newInstance(DfFactoryFinder.java:135)
at com.documentum.xml.jaxp.DfFactoryFinder.find(DfFactoryFinder.java:273)
at com.documentum.xml.jaxp.DfDocumentBuilderFactory.newInstance(DfDocumentBuilderFactory.java:19)
... 40 more
我的EAR的结构:
-lib
-- several libs
-META-INF
--application.xml
--beans.xml
--jboss-classloading.xml
--jboss-deployment-structure.xml
-enexisServiceCommonsEJB-1.0.0.jar
的JBoss部署-structure.xml:
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1">
<!--
<ear-subdeployments-isolated>false</ear-subdeployments-isolated>
-->
<deployment>
<dependencies>
<module name="com.documentum.dfc" export="true"/>
<!--
<module name="org.jboss.as.ejb3" export="true"/>
<module name="org.jboss.as.system-jmx" export="true"/>
<module name="org.jboss.as.jmx" export="true"/>
-->
</dependencies>
</deployment>
<sub-deployment name="enexisServiceCommonsEJB-1.0.0.jar">
<dependencies>
<module name="com.documentum.dfc" export="true"/>
<!--
<module name="org.jboss.as.ejb3" export="true"/>
<module name="org.jboss.as.system-jmx" export="true"/>
<module name="org.jboss.as.jmx" export="true"/>
-->
</dependencies>
<local-last value="true" />
</sub-deployment>
</jboss-deployment-structure>
答案 0 :(得分:0)
为了在Jboss中使用Tibco EMS队列/主题,我们需要在jboss中配置和部署Generic JMS资源适配器。按照以下步骤在JBOSS7或Jboss eap 6.4中配置JMS资源适配器:
步骤1:在jboss安装中创建以下文件夹结构dir \ modules \ com \ tibco \ tibjms \ main 将tibjms.jar和tibcrypt.jar复制到\ modules \ com \ tibco \ tibjms \ main和 使用以下内容创建module.xml:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.tibco.jms">
<resources>
<resource-root path="tibcrypt.jar"/>
<resource-root path="tibjms.jar"/>
<!-- Insert resources here -->
</resources>
<dependencies>
<!-- Insert dependencies here -->
<module name="javax.api"/>
<module name="javax.jms.api"/>
</dependencies>
</module>
步骤2:打开\ jboss-eap-6.4 \ modules \ system \ layers \ base \ org \ jboss \ _jts \ main \ module.xml和\ jboss-eap-6.4 \ modules \ system \ layers \ base \ org \ jboss \ as \ ee \ main \ module.xml在两个位置添加以下依赖项
<dependencies>
<module name="com.tibco.tibjms"/>
</dependencies>
步骤3:打开standalone_XXX.xml(使用的文件)(\ standalone \ configuration \ standalone.xml)并在
中添加以下行<mdb>
<resource-adapter-ref resource-adapter-name="genericra.rar"/>
<bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
</mdb>
步骤4:重启服务器,看看是否解决了异常。通过上述步骤,我的问题得到解决。一切顺利。