Websphere 8.0.0.11
Hibernate 4.2.21.Final
Я нашел много вопросов по этой же проблеме, но никто из них не работал для меня.
Если я развертываю приложение в Websphere, он работает нормально.
Однако мы определили общую библиотеку, содержащую все сторонние библиотеки (spring, hibernate, javassist и т. Д.), Чтобы наши WAR были тоньше.
Этот способ во время развертывания связывает нашу тонкую WAR с этой общей библиотекой Websphere.
Дело в том, что при развертывании приложения таким образом выбрасывается ClassCastException Hibernate exception _$$_javassist_856 cannot be cast to javassist.util.proxy.Proxy
.
Я проверил загруженные банки в консоли websphere и вижу только один javassist jar (3.18.1-GA) в пути к классам.
Почему это могло произойти?
UPDATE
Я также попытался с помощью PARENT_FIRST и PARENT_LAST класса нагрузки.
UPDATE 2
Я только что узнал, что Websphere загружается свой собственный Javassist банку:
URL location = ProxyFactory.class.getProtectionDomain().getCodeSource().getLocation();
logger.info("{}", location);
Он печатает: file:/opt/IBM/WebSphere/AppServer/plugins/javassist.jar
Привет, Рафаэль, спасибо, что ответили. Да, мы используем несколько библиотек, определенных в общей библиотеке websphere, чтобы облегчить наши тяжелые войны. До сих пор у нас была Spring 4.x + Hibernate 3.6, и все работает плавно. Очевидно, что Javassist Websphere был совместим с тем, который существует в нашей общей библиотеке. К сожалению, похоже, что это не очень хорошее решение ... – codependent
Что вы можете сделать, так это то, что вы можете затенять вашу зависимость, чтобы поместить ее в другое пространство имен. –