jboss 7 не сканирует внешнюю папку jre

У меня есть программное обеспечение, которое работает на 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

но не удалось проверить папку ext.

Действительно в безвыходной ситуации. Помощь очень ценится.

заранее спасибо

4 ответа

Решение

У меня была очень похожая проблема несколько месяцев назад, и кажется, что стандартный подход не работает.

Эта ссылка решила мою проблему: https://community.jboss.org/thread/175395

Это говорит о bouncycastle провайдер, но должен работать и для sunjce_provider.

Вы поняли это неправильно. JBoss 7 перешли на полную ОСГи. Вам необходимо добавить их в загрузочные делегации.

Это действительно загружает ext в пути к классам. Проблема в том, что он применяет фильтр классов (чтобы вы не использовали нестандартный класс).

Та же проблема возникает, если вы используете драйвер ODBC (sun.jdbc.odbc.*) и другие sun.* классы. Вы должны добавить его в загрузочный пакет / системный пакет. (Это не правильный путь. Но вы, кажется, ненавидите правильный путь, так что...)

Смотрите эти страницы для деталей:

Попробуйте поставить следующее:

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

внутри войны / классы /META-INF/MANIFEST.MF

Обычно в файле войны META-INF находится в корне войны, как в

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

Кажется, что следующее работает для liferay 6.1 на jboss 7.1.1

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

Он будет работать в Jboss 7, просто указав на jar, используя jboss-deploy-strcuture.xml или запись manifest.

Другие вопросы по тегам