Javax.xml.ws.soap.soapfaultexception: Unmarshalling Ошибка: неожиданный элемент (URI: «», локальный: «ошибка») после перJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Javax.xml.ws.soap.soapfaultexception: Unmarshalling Ошибка: неожиданный элемент (URI: «», локальный: «ошибка») после пер

Сообщение Anonymous »

Проблема

Я пытаюсь перенести свою веб-службу client из apache axis-1 на apache cxf . Сама веб-служба запускает OM Axis-1 и находится вне моего контроля.

Я сгенерировал все артефакты CXF, и клиент работал хорошо, пока не будет вынесена какая-либо ошибка. Неисправный XML выглядит как: < /p>

Код: Выделить всё




soapenv:Server
Remote error processing component card request


:-303
Remote error processing component card request
remote_service


-303
Remote error processing component card request







< /code>

Это делает сгенерированный CXF клиент с исключением: < /p>

javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"fault").
Expected elements are ,,
...

at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:603)
at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:244)
at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:239)
at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:116)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext$DefaultRootLoader.childElement(UnmarshallingContext.java:1009)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:446)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:427)
at com.sun.xml.bind.v2.runtime.unmarshaller.InterningXmlVisitor.startElement(InterningXmlVisitor.java:71)
at com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:137)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:240)
at com.sun.xml.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:123)
...
< /code>

afaiu из этой Stacktrace, Unmarshaller ожидает, что элемент < /strong> будет иметь определенное объявление пространства имен, но оно поступает без одного. /> Существует много подобных вопросов, но не все решения применимы для меня, потому что я не могу ничего изменить на стороне сервера (по крайней мере, по причинам обратной совместимости), и изменение WSDL также не ценится. Thus changes are restricted in client side only (including its (re)generation).
I've tried several possible solutions based on similar questions:



[*]adding package-info.class[/b] with default namespace declaration - nothing changes;
[*]force setting empty namespace for generated Fault and/or bull_exception Classes - NullPointerException в подпрограммах CXF во время построения объекта исключения (см. Раздел «Редактировать ниже»);
[*] Использование sax xmlfilter - не смог найти способ встраивать его в CXF, созданные. Info < /h2>

CXF сгенерировал классы для исключения и его Bullinfo (без каких -либо из моих изменений) выглядеть как:

bull < /strong> класс: < /p>

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"faultcode",
"faultstring",
"faultactor",
"detail"
})
@XmlRootElement(name = "fault")
public class Fault {

@XmlElement(required = true)
protected String faultcode;
...
< /code>

bull_exception < /strong> class: < /p>

@WebFault(name = "fault", targetNamespace = "http://some.namespace.org")
public class Fault_Exception extends Exception {

private Fault fault;

public Fault_Exception() {
super();
}
...
< /code>

Некоторые выдержки wsdl.
WSDL Bull < /strong> Объявление сообщения: < /p>




< /code>

xsd bull < /strong> element: < /p>



Comment describing your root element



...
...
...
...



< /code>

wsdl операция Описание < /strong> Пример: < /p>






< /code>

root lement WSDL: < /strong> < /p>



< /code>

Можно предоставить дополнительную дополнительную информацию.

заранее благодаря! Это ошибка cxf:


https://issues.apache.org/jira/browse/cxf-2555;
https://issues.apache.org/jira/browse/cxf-3763. /> < /ul>

Оба билета закрыты с разрешением «Исправлено», но в комментариях пользователи сообщают, что они все еще поймают эту ошибку. It seems that developers did not cover all the cases where custom exceptions are handled by CXF and for some reasons it sometimes leads to


org.apache.cxf.interceptor.ClientFaultConverter processFaultDetail

INFO: Exception occurred while creating exception: null

java.lang.nullpointerException < /p>
< /blockquote>

Кто -нибудь когда -нибудь сталкивался с этой проблемой? < /p>

Подробнее здесь: https://stackoverflow.com/questions/262 ... -element-u
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»