ExceptionInInitializerError - JBoss 7.0.2

2019-08-07 09:03发布

问题:

Recently, we migrated from BO XI 3.1 to BO 4.0 and JBoss 7.0.2 app server. I am currently getting following exception:

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)

It seems due to changes in the class overloading methodology in JBoss 7.0.2. Can anyone please provide how we can achieve the class overloading precedence in JBoss 7.0.2?

回答1:

The error is thrown from an RSA library. I can show you how to resolve this issue by using dswsbobje.war (one of the web apps in BO 4.0) as an example. Here are the steps:

  1. Create a module called com.rsa. Please see the module sample rsa_module.zip from this link.
  2. Create a rsa\main directory under \modules\com
  3. Unzip the rsa_module.zip and place the files under \modules\com\rsa\main
  4. Get the exploded dswsbobje and remove the RSA related jars (3 of them) from dswsbobje (they are the ones you put into ...\rsa\main in above step)
  5. Create a jboss-deployment-structure.xml file (get this file from the link in step 1) and place it under dswsbobje's WEB-INF directory.
  6. Re-create the dswsbobje.war
  7. Deploy the updated war file


回答2:

There is a much sinpler solution to this. Just run JBoss with the following parameters:

• -Djboss.vfs.forceCaseSensitive=true • -Djboss.vfs.forceVfsJar=true

Mariusz



标签: jboss7.x