1

最近,我们从 BO XI 3.1 迁移到 BO 4.0 和 JBoss 7.0.2 应用服务器。我目前收到以下异常:

14:53:44,256 ERROR [stderr] (Thread-25) Exception in thread "Thread-25" java.lang.ExceptionInInitializerError
14:53:44,256 ERROR [stderr] (Thread-25)         at com.businessobjects.bcm.BCM.<clinit>(BCM.java:1144)
14:53:44,271 ERROR [stderr] (Thread-25)         at com.crystaldecisions.enterprise.ocaframework.BCMInitializer.run(BCMInitializer.java:29)
14:53:44,271 ERROR [stderr] (Thread-25)         at java.lang.Thread.run(Thread.java:619)
14:53:44,271 ERROR [stderr] (Thread-25) Caused by: java.lang.SecurityException: Toolkit not encapsulated by a jar.
14:53:44,271 ERROR [stderr] (Thread-25)         at com.rsa.cryptoj.f.ug.d(Unknown Source)
14:53:44,271 ERROR [stderr] (Thread-25)         at com.rsa.cryptoj.f.ug.b(Unknown Source)
14:53:44,271 ERROR [stderr] (Thread-25)         at com.rsa.cryptoj.f.nd.b(Unknown Source)
14:53:44,271 ERROR [stderr] (Thread-25)         at com.rsa.cryptoj.f.nd.c(Unknown Source)
14:53:44,271 INFO  [stdout] (http--0.0.0.0-7005-1) 25 Jul 2012 14:53:44,271 TANL ERROR [http--0.0.0.0-7005-1] meta.AnalyticsMetaDataServiceImpl: Failed to connect to provider server: Could not initialize class com.businessobjects.bcm.BCM
14:53:44,271 ERROR [stderr] (Thread-25)         at com.rsa.jsafe.CryptoJ.isFIPS140Compliant(Unknown Source)
14:53:44,271 INFO  [stdout] (http--0.0.0.0-7005-1) java.lang.NoClassDefFoundError: Could not initialize class com.businessobjects.bcm.BCM
14:53:44,271 ERROR [stderr] (Thread-25)         at com.businessobjects.bcm.internal.BcmRsaLib.initialize(BcmRsaLib.java:214)
14:53:44,271 INFO  [stdout] (http--0.0.0.0-7005-1)      at com.crystaldecisions.sdk.framework.internal.TrustedPrincipal.getRandomString(TrustedPrincipal.java:253)
14:53:44,271 ERROR [stderr] (Thread-25)         at com.businessobjects.bcm.internal.BcmRsaLib.<clinit>(BcmRsaLib.java:289)
14:53:44,271 INFO  [stdout] (http--0.0.0.0-7005-1)      at com.crystaldecisions.sdk.framework.internal.TrustedPrincipal.getPassword(TrustedPrincipal.java:196)
14:53:44,271 ERROR [stderr] (Thread-25)         ... 3 more
14:53:44,271 INFO  [stdout] (http--0.0.0.0-7005-1)      at com.crystaldecisions.sdk.framework.internal.SessionMgr.logon_aroundBody22(SessionMgr.java:853)
14:53:44,271 INFO  [stdout] (http--0.0.0.0-7005-1)      at com.crystaldecisions.sdk.framework.internal.SessionMgr.logon(SessionMgr.java:1)
14:53:44,271 INFO  [stdout] (http--0.0.0.0-7005-1)      at com.crystaldecisions.sdk.framework.internal.SessionMgr.logon_aroundBody20(SessionMgr.java:821)
14:53:44,271 INFO  [stdout] (http--0.0.0.0-7005-1)      at com.crystaldecisions.sdk.framework.internal.SessionMgr.logon_aroundBody21$advice(SessionMgr.java:512)
14:53:44,271 INFO  [stdout] (http--0.0.0.0-7005-1)      at com.crystaldecisions.sdk.framework.internal.SessionMgr.logon(SessionMgr.java:1)

这似乎是由于 JBoss 7.0.2 中类重载方法的变化。谁能提供我们如何在 JBoss 7.0.2 中实现类重载优先级?

4

2 回答 2

4

该错误是从 RSA 库中引发的。我可以通过使用 dswsbobje.war(BO 4.0 中的 Web 应用程序之一)作为示例向您展示如何解决此问题。以下是步骤:

  1. 创建一个名为 com.rsa 的模块。请参阅此链接中的模块示例 rsa_module.zip 。
  2. 在 \modules\com 下创建一个 rsa\main 目录
  3. 解压缩 rsa_module.zip 并将文件放在 \modules\com\rsa\main 下
  4. 获取分解的 dswsbobje 并从 dswsbobje 中删除与 RSA 相关的 jar(其中 3 个)(它们是您在上述步骤中放入 ...\rsa\main 的那些)
  5. 创建一个 jboss-deployment-structure.xml 文件(从步骤 1 中的链接获取此文件)并将其放在 dswsbobje 的 WEB-INF 目录下。
  6. 重新创建 dswsbobje.war
  7. 部署更新的战争文件
于 2012-09-21T19:26:33.260 回答
1

有一个更简单的解决方案。只需使用以下参数运行 JBoss: -Djboss.vfs.forceCaseSensitive=true -Djboss.vfs.forceVfsJar=true

于 2015-04-21T13:38:55.633 回答