У меня была такая же проблема, но в моем случае проблема и решение были разными.
(Возможная) причина: Мой вердикт относительно причины проблемы заключался в конфликте между двумя версиями реализации одного и того же API. Во время проектирования на моей рабочей станции (в соответствии с установленными правилами того места, где я нахожусь) моя IDE использовала реализацию SAAJ 1.4 IBM JDK для компиляции моих классов веб-сервисов.
IBM\jdk\jre\lib\rt.jar/com\sun\xml\internal\messaging\saaj\soap\SOAPDocumentImpl.class
Во время среды выполнения при использовании Tomee(Tomcat) 1.7.3 один и тот же класс загружался по всему пути:
$TOMEE_HOME\lib\saaj-impl-1.3.18.jar/com\sun\xml\internal\messaging\saaj\soap\SOAPDocumentImpl.class
И это вызывало ошибку проверки во время выполнения веб-служб:
- java.lang.VerifyError: форма стека JVMVRFY012 несовместима;
- (на португальском языке): java.lang.VerifyError: несовместимый формат JVMVRFY012;
Временное решение. Просто возьмите файл saaj-impl-1.3.18.jar из папки lib Tomee (переместите его). Поскольку Tomee/Tomcat использовал тот же IBM JDK, что и моя IDE, я обнаружил, что конфликт может быть из-за saaj-impl-1.3.18.jar, локализованного в папке lib Tomee. Далее заставьте Tomee использовать ту же реализацию во время выполнения, которая использовалась во время компиляции (IBM JDK).
Обратите внимание, что у меня была эта проблема на моей рабочей станции разработки, а не в среде разработки/производства (хост). Из-за правил профиля рабочей станции это обходной путь, который, как я обнаружил, работает для меня.
person
Community
schedule
05.01.2016