【发布时间】:2018-02-02 18:28:42
【问题描述】:
有人成功地将 Crystal Report 2016 BO/BI 与 Wildfly 11 集成了吗?
我有可以使用的 tomcat 版本,但使用 Wildfly 11 时它在这一点上失败了。
ISessionMgr sessionMgr = CrystalEnterprise.getSessionMgr();
我得到的例外是,(我有所有必需的 jar,因为相同的代码适用于 tomcat)。我确信这与 Wildfly v11 有关。
有人吗?
原因:java.lang.NoClassDefFoundError:链接失败 com/crystaldecisions/thirdparty/com/ooc/OB/TenantCategoryPolicy_impl (来自服务模块加载器的模块“deployment.master_dev_ca.war”): 链接失败 com/crystaldecisions/thirdparty/com/ooc/OB/TenantCategoryPolicy (来自服务模块加载器的模块“deployment.master_dev_ca.war”): org/omg/CORBA/portable/IDLEntity 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:423) 在 org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:446) 在 org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:274) 在 org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:77) 在 org.jboss.modules.Module.loadModuleClass(Module.java:713) 在 org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) 在 org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:412) 在 org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:400) 在 org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116) 在 com.crystaldecisions.thirdparty.com.ooc.OBCORBA.ORB_impl.initializeDefaultPolicies(ORB_impl.java:369) 在 com.crystaldecisions.thirdparty.com.ooc.OBCORBA.ORB_impl.initialize(ORB_impl.java:196) 在 com.crystaldecisions.thirdparty.com.ooc.OBCORBA.ORB_impl.setParameters(ORB_impl.java:812) 在 com.crystaldecisions.thirdparty.com.ooc.OBCORBA.ORB_impl.init(ORB_impl.java:1313) 在 com.crystaldecisions.enterprise.ocaframework.idl.helper.ORBHelper.init(ORBHelper.java:57) 在 com.crystaldecisions.enterprise.ocaframework.ServiceMgr.(ServiceMgr.java:402) 在 com.crystaldecisions.enterprise.ocaframework.ServiceMgrFactory.getServiceMgr(ServiceMgrFactory.java:66) 在 com.crystaldecisions.sdk.occa.security.internal.LogonService.ensureServiceStub(LogonService.java:646) 在 com.crystaldecisions.sdk.occa.security.internal.LogonService.doUserLogon(LogonService.java:829) 在 com.crystaldecisions.sdk.occa.security.internal.LogonService.doUserLogon(LogonService.java:806) 在 com.crystaldecisions.sdk.occa.security.internal.LogonService.userLogon(LogonService.java:211) 在 com.crystaldecisions.sdk.occa.security.internal.SecurityMgr.userLogon(SecurityMgr.java:166) 在 com.crystaldecisions.sdk.framework.internal.SessionMgr.logon_aroundBody0(SessionMgr.java:457) 在 com.crystaldecisions.sdk.framework.internal.SessionMgr.logon_aroundBody1$advice(SessionMgr.java:521) 在 com.crystaldecisions.sdk.framework.internal.SessionMgr.logon(SessionMgr.java:1) 在 com.aventis.master.presentation.action.CrystalAction.doReport(CrystalAction.java:287) 在 com.aventis.master.presentation.action.CrystalAction.loadReports(CrystalAction.java:1028) ... 52 更多
提前致谢, D.
更新:仍然无法正常工作:( 我的模块设置, 我把所有的 .jar 文件放在 \wildfly_installation_dir\modules\systems\layers\base\bo\crystalreports\main\
aspectjrt.jar
bcm.jar
ceaspect.jar
cecore.jar
celib.jar
cereports.jar
certjFIPS.jar
cesdk.jar
cesession.jar
com.azalea.ufl.barcode.1.0.jar
commons-collections-3.2.2.jar
commons-configuration-1.2.jar
commons-lang-2.1.jar
commons-lang-2.3.jar
commons-logging.jar
corbaidl.jar
cryptojFIPS.jar
CrystalReportsRuntime.jar
CrystalReportsSDK.jar
cvom.jar
DatabaseConnectors.jar
ebus405.jar
icu4j.jar
jcmFIPS.jar
JDBInterface.jar
keycodeDecoder.jar
log4j.jar
logging.jar
QueryBuilder.jar
sap.com~tc~sec~csi.jar
serializer.jar
SL_plugins.jar
ssljFIPS.jar
TraceLog.jar
webreporting-jsf.jar
webreporting.jar
xpp3.jar
在jboss-deployment-structure.xml
中<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="bo.crystalreport" export="true"/>
</dependencies>
<exclusions>
<module name="org.apache.cxf" />
<module name="org.apache.cxf.impl" />
<module name="org.apache.cxf.services-sts" />
<module name="org.apache.cxf.ws-security" />
...
我的 module.xml 看起来像这样。
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="bo.crystalreport">
<resources>
<resource-root path="aspectjrt.jar"/>
<resource-root path="bcm.jar"/>
<resource-root path="ceaspect.jar"/>
<resource-root path="cecore.jar"/>
<resource-root path="celib.jar"/>
<resource-root path="cereports.jar"/>
<resource-root path="certjFIPS.jar"/>
<resource-root path="cesdk.jar"/>
<resource-root path="cesession.jar"/>
<resource-root path="com.azalea.ufl.barcode.1.0.jar"/>
<resource-root path="commons-collections-3.2.2.jar"/>
<resource-root path="commons-configuration-1.2.jar"/>
<resource-root path="commons-lang-2.1.jar"/>
<resource-root path="commons-lang-2.3.jar"/>
<resource-root path="commons-logging.jar"/>
<resource-root path="corbaidl.jar"/>
<resource-root path="cryptojFIPS.jar"/>
<resource-root path="CrystalReportsRuntime.jar"/>
<resource-root path="CrystalReportsSDK.jar"/>
<resource-root path="cvom.jar"/>
<resource-root path="DatabaseConnectors.jar"/>
<resource-root path="ebus405.jar"/>
<resource-root path="icu4j.jar"/>
<resource-root path="jcmFIPS.jar"/>
<resource-root path="JDBInterface.jar"/>
<resource-root path="keycodeDecoder.jar"/>
<resource-root path="log4j.jar"/>
<resource-root path="logging.jar"/>
<resource-root path="QueryBuilder.jar"/>
<resource-root path="sap.com~tc~sec~csi.jar"/>
<resource-root path="serializer.jar"/>
<resource-root path="SL_plugins.jar"/>
<resource-root path="ssljFIPS.jar"/>
<resource-root path="TraceLog.jar"/>
<resource-root path="webreporting-jsf.jar"/>
<resource-root path="webreporting.jar"/>
<resource-root path="xpp3.jar"/>
</resources>
<dependencies>
<module name="org.omg.api"/>
<module name="javax.faces.api"/>
</dependencies>
</module>
【问题讨论】:
-
您是在部署中包含它还是将其设置为模块?
-
我尝试了所有 3 个选项模块,WEB-INF\lib 和 Maven,它们都失败了。我相信这是与 org.apache.cxf 冲突的类加载问题,而 Crystal Report 在 eBus405.jar 中嵌入了 com/crystaldecisions/thirdparty/com/ooc/OB/ 包,这与 cxf 的 apache 实现冲突。我不知道这些包,我必须查看它们的源代码以了解它是如何链接的。
-
你认为他们有什么冲突?你的 module.xml 看起来像什么?
-
好的,所以我添加了 module.xml 并通过包含 cxf 但获得 java 通用安全服务异常来设法解决 TenantCategoryPolicy 问题。有些事情我一定做得不对。
标签: crystal-reports wildfly-11