2015-05-06 3 views
1

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

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 как для ПРИЛОЖЕНИЯ, так и для МОДУЛЯ. Xmlsec-2.0.4.jar представлен в разделе «Средство просмотра загрузчика классов». Я проверил все мои библиотеки, нет дублирующих классов DOMXMLSignatureFactory. Может кто-нибудь мне помочь!

+0

Перекрестная публикация связанных вопросов и ответов от steveT с перечислением известных проблемных банок. http://stackoverflow.com/questions/31110951/apache-cxf-2-7-11-on-websphere-8-5 – Revoman

ответ

1

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

1

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^