Websphere 8.5: не удается найти классы, даже если эти классы находятся в папке lib

Я использую spring/wss4j для безопасности веб-сервисов в websphere 8.5. Wss4j требует xmlsec.jar, и я включил xmlsec.jar в WEB-INF/lib/xmlsec-2.0.4.jar. Но загрузчик классов websphere не может найти DOMXMLSignatureFactory.

Caused by: java.lang.ClassNotFoundException: org.apache.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:599) ~[na:1.7.0]
at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:204) ~[bootstrap.jar:WAS855.SERV1 [cf011339.02]]
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:760) ~[na:1.7.0]
at java.lang.ClassLoader.loadClass(ClassLoader.java:737) ~[na:1.7.0]
at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:119) ~[bootstrap.jar:WAS855.SERV1 [cf011339.02]]
at java.lang.ClassLoader.loadClass(ClassLoader.java:707) ~[na:1.7.0]
at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:62) ~[com.ibm.ws.runtime.jar:WAS855.SERV1 [cf011339.02]]
at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:58) ~[com.ibm.ws.runtime.jar:WAS855.SERV1 [cf011339.02]]
at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:616) ~[com.ibm.ws.runtime.jar:WAS855.SERV1 [cf011339.02]]
at java.lang.ClassLoader.loadClass(ClassLoader.java:707) ~[na:1.7.0]
at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:616) ~[com.ibm.ws.runtime.jar:WAS855.SERV1 [cf011339.02]]
at java.lang.ClassLoader.loadClass(ClassLoader.java:707) ~[na:1.7.0]
at javax.xml.crypto.dsig.XMLDSigSecurity.doGetImpl(XMLDSigSecurity.java:181) ~[na:na]
... 98 common frames omitted

Я устанавливаю PARENT_LAST как для APPLICATION, так и для MODULE. Xmlsec-2.0.4.jar представлен в разделе «Просмотр загрузчика классов». Я проверил все свои библиотеки, нет повторяющихся классов DOMXMLSignatureFactory. Может ли кто-нибудь помочь мне!


person Trung Pham    schedule 06.05.2015    source источник
comment
Перекрестная публикация связанных вопросов и ответов от steveT со списком известных проблемных банок. stackoverflow .com/questions/31110951/   -  person Revoman    schedule 21.06.2016


Ответы (2)


Вы, вероятно, добьетесь большего успеха, добавив xmlsec.jar в качестве изолированной общей библиотеки и связав ее с вашим приложением.

person covener    schedule 06.05.2015

Основной причиной проблемы является более старая версия банок xmlsec с классами javax. Мы использовали jar-файлы xmlsec-2.0.0, и это сработало. Мы получили подсказку из проблемы jar Santuario xmlsec https://issues.apache.org/jira/browse/SANTUARIO-358. Я также заметил, что последняя версия CXF 3.1.6 содержит xmlsec-2.0.6.jar, который не содержит пакетов javax, что является реальным решением этой проблемы.

Пожалуйста, используйте последний пакет cxf (> 3.0).

person Nagaraj    schedule 08.06.2016