Когда я пытаюсь подключиться к мыльному сервису, я получаю это исключение в liferay 7.
JAR-файл Axis уже доступен в папке tomcat/web-inf/lib. Я использую compileOnly в build.gradle.
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.lang.ClassCastException: org.apache.axis.attachments.AttachmentsImpl cannot be cast to org.apache.axis.attachments.Attachments
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.lang.ClassCastException: org.apache.axis.attachments.AttachmentsImpl cannot be cast to org.apache.axis.attachments.Attachments
at org.apache.axis.Message.setup(Message.java:352)
Возможный дубликат Liferay - Создание PDF и вывод в поток. Хотя технически этот вопрос/ответ выглядит совершенно по-другому, основной принцип, например. повторяющийся класс в пути к классам одинаков. Это тот случай, когда подкласс не может быть преобразован в его законный суперкласс/интерфейс.
Вы нашли причину и устранили эту проблему? Мы сталкиваемся с той же проблемой, и при просмотре кода у нас есть compileOnly в пользовательском сервисе build.gradle, и в полном приложении нет другой версии оси. При поиске jar в полном комплекте мы видим следующие два места, где доступен axis.jar: \bundles\tomcat-9.0.6\webapps\ROOT\WEB-INF\lib => axis.jar \bundles\osgi\state\ org.eclipse.osgi\1033\0\.cp\lib => org.apache.axis-1.4.LIFERAY-PATCHED-2.jar Любые указатели будут очень полезны!




Такой тип ClassCastException сигнализирует о том, что эти классы есть дважды в вашем пути к классам, и интерфейс загружается через одно место, в то время как реализация реализует другой альтернативный интерфейс. В сообщении об ошибке указано только имя интерфейса, а не загрузчик классов. Выясните, какой из jar-файлов в пути к классам является лишним, и удалите его.