У меня два 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?