Axis2 получает вложение MTOM, ошибка обработчика данных не найдена

Для проекта я реализую службу SOAP с использованием Apache Axis2 1.6.2. У меня есть служба, которой нужно получить файл с помощью MTOM. Но, к сожалению, у меня продолжают возникать проблемы с получением вложенного файла MTOM. Я продолжаю получать исключение:

org.apache.axiom.om.OMException: A data handler was not found for content id cid:491414508823

....

Я пытался найти ответ в Интернете, но безуспешно. Я надеюсь, что кто-то может получить меня в правильном направлении. Мой wsdl содержит следующий фрагмент:

...
<xs:element minOccurs="0" name="PDF_Attachment">
  <xs:complexType>
     <xs:all>
         <xs:element minOccurs="0" name="PDF_AttachmentName" type="xs:string"/>
         <xs:element name="PDF_AttachmentContent" type="xs:base64Binary"/>
     </xs:all>
   </xs:complexType>
</xs:element>
...

Я использую SoapUI для создания запроса и установил для свойства «использовать MTOM» значение true.

Может кто сталкивался с такой проблемой или знает как решить. Помощь будет принята с благодарностью!

Ричард

ОБНОВЛЕНИЕ

Думаю, я разобрался с проблемой. Проблема заключалась в моих определениях xsd/wsdl. Я использовал jaxb для преобразования своих бизнес-объектов, определенных во внешних xsd, в POJO с аннотациями JAXB. Но xs:base64Binary был преобразован как byte[]. Изменение xsd с помощью:

<xs:schema ... xmlns:xmime="http://www.w3.org/2005/05/xmlmime"> ...

И изменив элемент на:

<xs:element name="PDF_AttachmentContent" minOccurs="1" maxOccurs="1" type="xs:base64Binary" xmime:expectedContentTypes="application/octet-stream">

JAXB теперь создал DataHandler как возвращаемый тип в getPDF_AttatchmentContent. Единственная проблема, которую мне нужно решить, — разрешить SOAPUI отправлять вложения MTOM. Каким-то образом созданный мной тестовый клиент работает отлично, но SOAPUI не отправляет вложение...

Источник решения выше: http://cxf.apache.org/docs/mtom-attachments-with-jaxb.html

ОБНОВЛЕНИЕ 2: http://ssagara.blogspot.nl/2012/03/test-axis2-jax-ws-mtom-service-using.html решил мои проблемы SOAPUI с MTOM. Я не отредактировал правильный cid в своем мыльном сообщении. Я предполагал, что SOAPUI поможет мне в этом, но это не так.


person Bjarne77    schedule 16.07.2012    source источник
comment
Можете выложить расшифровку сообщения, отправленного в сервис? Кроме того, вы должны опубликовать больше трассировки стека, а не только первую строку.   -  person Andreas Veithen    schedule 17.07.2012
comment
Спасибо за чтение и комментирование. Я только что занялся этим вопросом.   -  person Bjarne77    schedule 17.07.2012


Ответы (1)


Подробности решения в исходном сообщении выше. Проблемы были решены с помощью следующих двух сайтов:

  1. Проблема с обработчиком данных: http://cxf.apache.org/docs/mtom-attachments-with-jaxb.html
  2. Проблема с SoapUI: http://ssagara.blogspot.nl/2012/03/test-axis2-jax-ws-mtom-service-using.html

Я надеюсь, что это будет полезно для некоторых из вас.

person Bjarne77    schedule 17.07.2012