Java jboss 7不扫描jre的ext文件夹

Java jboss 7不扫描jre的ext文件夹,java,cryptography,jboss7.x,jsf-1.2,seam2,Java,Cryptography,Jboss7.x,Jsf 1.2,Seam2,我有一个在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.modul

我有一个在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)
我在此链接中尝试了以下解决方案:

但无法扫描ext文件夹

真的处于绝望的境地。非常感谢你的帮助


提前感谢

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

这个链接解决了我的问题:


它谈到了bouncycastle提供程序,但也应该适用于sunjce_提供程序。

尝试放置以下内容:

Extension-List: crypto
crypto-Extension-Name: javax.crypto
WAR内部/classes/META-INF/MANIFEST.MF

通常在war文件中,META-INF位于war的根目录中,如中所示

WAR
├── WEB-INF
│   └── classes
└── META-INF   
    └── MANIFEST.MF 
以下内容似乎适用于JBoss7.1.1上的liferay 6.1

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

你理解错了。JBoss7已经迁移到完整的OSGi。您需要将它们添加到引导委派中

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

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

有关详细信息,请参见以下页面:


它将在Jboss 7中工作,只需使用Jboss-deployment-structure.xml或manifest条目指向jar即可

你是舒尔吗?也许你只是用不同的jdk启动jboss(没有jce)?或者问题可能出现在安全设置中(java.policy、java、security、local_policy.jar),但我没有;我不相信jboss应该“扫描”jdk中的ext文件夹。@用户1516873当然jboss不应该扫描,除非你让它找到它,但我不知道如何做,没有好的例子。@dcernahoschi链接没有断开。我找到了另一个链接,其中谈到了它,但对我不起作用:@user1516873 jre/lib/ext不包括在jboss的类路径中。是的,测试在jboss之外运行良好。sun jce无法从maven实现,这家伙只是展示了如何使用maven获得提供者。问题是如何获得sun jce!不,这和maven无关。您应该将sunjce jar从
lib/ext
目录复制到您在
modules
目录中手动创建的目录。我不想从jre复制jar。相反,我希望所有jre jar以及这个jar都可用,因为它可用于jboss范围之外的所有其他应用程序。我觉得你的建议没有用,也不是一个答案。你想不想复制这个罐子取决于你,但这不是投反对票的理由。答案可能对其他人有用。或者你可能在问题中明确表示你不想要这样的答案,这样就不会有人浪费时间来回答反对票。这不公平。事实上我试过了,但没有成功。我发布的一个链接有这个例子。我想知道为什么它对我不起作用。老实说,我不知道,你可能想在jboss社区论坛上问一下(如果你还没有问的话)。你的答案非常有用,谢谢。那么你会建议什么正确的方法呢?我的意思是,我不得不添加一个用jre打包的库,通过复制它并从中创建一个模块(我想这就是你所说的正确方法,是吗?)。再次感谢,正确的方法是创建一个像dcernahoschi do这样的模块。但你似乎讨厌它。