3

我有一个在 jboss 上运行的软件,它需要位于 jre/lib/ext 中的加密库。我得到以下异常:

Caused by: java.lang.ClassNotFoundException: com.sun.crypto.provider.SunJCE from [Module "deployment.myatrium-intranet-ear.ear.myatrium_intranet.jar:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)

我在此链接中尝试了以下解决方案:

http://www.liferay.com/it/community/wiki/-/wiki/Main/JBoss+AS7+tips/maximized#section-JBoss+AS7+tips-sunjce_provider.jar

但未能扫描 ext 文件夹。

真的陷入了绝境。非常感谢您的帮助。

提前致谢

4

4 回答 4

1

你理解错了。JBoss 7 已迁移到完整的 OSGi。您需要将它们添加到引导委托。

它确实加载了ext类路径。问题是它应用了一个类过滤器(以防止您使用非标准类)。

如果您使用 ODBC 驱动程序 ( sun.jdbc.odbc.*) 和其他sun.*类,也会出现同样的问题。您必须将其添加到引导授权/系统包中。(这不是正确的方式。但是您似乎讨厌正确的方式,所以....)

有关详细信息,请参阅这些页面:

于 2012-09-15T05:19:59.123 回答
0

几个月前我遇到了一个非常相似的问题,标准方法似乎不起作用。

这个链接解决了我的问题:https ://community.jboss.org/thread/175395

它讨论了bouncycastle提供者,但也适用于 sunjce_provider。

于 2012-09-14T10:52:53.897 回答
0

尝试放置以下内容:

Extension-List: crypto
crypto-Extension-Name: javax.crypto

在 WAR/classes/META-INF/MANIFEST.MF 中

通常在战争文件中,META-INF 位于战争的根目录中,如

WAR
├── WEB-INF
│   └── classes
└── META-INF   
    └── MANIFEST.MF 

以下似乎适用于 jboss 7.1.1 上的 liferay 6.1

WAR
└── WEB-INF
    └── classes
         └── META-INF
              └── MANIFEST.MF
于 2012-09-15T00:48:49.337 回答
0

它可以在 Jboss 7 中工作,只需指向 jar,使用 jboss-deployment-strcuture.xml 或清单条目。

于 2014-01-06T03:04:30.627 回答