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.