ClassCastException с несколькими войнами, развернутыми в Tomcat - PullRequest
1 голос
/ 08 сентября 2011

У меня два WAR развернуты в одном экземпляре Tomcat 7, и оба используют CXF + WSS4J.Эти два приложения взаимодействуют через SOAP, а перехватчики WSS4J обрабатывают утверждения SAML в заголовках SOAP.При тестировании каждой войны в отдельности все работает нормально, но когда оба приложения развернуты и одно приложение отправляет SOAP-сообщение другому, я получаю следующее исключение ClassCastException:

java.lang.ClassCastException: org.apache.ws.security.WSDocInfo cannot be cast to org.apache.ws.security.WSDocInfo

Для меня это подразумевает загрузчик классоввопрос, но что конкретно я не могу понять.Каждое приложение имеет свою собственную копию WSS4J в своих соответствующих папках WEB-INF / lib, и я не вижу никакой библиотеки WSS4J в общих библиотеках Tomcat.

В производстве эти два приложения, скорее всего, никогда не будут использовать одно и то жеJVM, не говоря уже о том, чтобы быть в том же экземпляре Tomcat, но я буду чувствовать себя более комфортно, когда я доберусь до сути этой проблемы.Это также помогает запускать оба приложения из одного экземпляра Tomcat в процессе разработки.Кто-нибудь имеет какие-либо идеи, что проблема может быть?

ОБНОВЛЕНИЕ 1: Я развернул каждую войну в отдельных экземплярах Tomcat, которые оба используют одну и ту же JVM и ClassCastException исчезает.Должно быть что-то, чего я не понимаю с загрузкой классов Tomcat?

1 Ответ

1 голос
/ 26 октября 2011

Из системы отслеживания проблем WSS4J:

https://issues.apache.org/jira/browse/WSS-282

STRTransform JCE-провайдер выбрасывает java.lang.ClassCastException: org.jcp.xml.dsig.internal.dom.DOMSubTreeData, несовместимый с javax.xml.crypto.OctetStreamData в Websphere

Затронутые версии: 1.6

Ик ...

...