Нас попросили предоставить сервис MTOM для JBOSS EAP, чтобы помочь клиенту загружать файлы
. Мы завершили задачу, внедрив @ WebServiceProvider
@BindingType (value=SOAPBinding.SOAP11HTTP_MTOM_BINDING)
@ServiceMode(value = Mode.MESSAGE)
@MTOM(enabled=true, threshold=102400)// 10 MB
@WebServiceProvider(portName = "UplaodServiceMTOMPort",
serviceName = "UplaodService",
targetNamespace = "http://aaaa.com/wsdl/Upload/1.0",
wsdlLocation = "/WEB-INF/wsdls/soap/Upload/Upload/Upload.wsdl"
)
. Во время тестирования мы получили файл успешно и ответил следующим образом (RAW-ответ от soap UI)
HTTP/1.1 200 OK
Connection: keep-alive
X-Powered-By: Undertow/1
Server: JBoss-EAP/7
Transfer-Encoding: chunked
Content-Type: multipart/related; type="application/xop+xml"; boundary="uuid:96853532-61c1-4dfe-910f-3bd710a87361"; start="<root.message@cxf.apache.org>"; start-info="text/xml"
Date: Thu, 05 Mar 2020 10:33:30 GMT
--uuid:96853532-61c1-4dfe-910f-3bd710a87361
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"
Content-Transfer-Encoding: binary
Content-ID: <root.message@cxf.apache.org>
<soapenv:Envelope xmlns:ns="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/" xmlns:ns1="http://sadad.com/schema/service/Upload/1.0" xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
........
</soapenv:Body>
</soapenv:Envelope>
--uuid:96853532-61c1-4dfe-910f-3bd710a87361--
Как видите, ответ также является многочастным, даже если он не содержит вложений. Наш клиент почему-то не может принять этот ответ, есть ли способ ответить простым soap (текст / xml) без границ на многочастный запрос MTOM?
обязательный сценарий: Запрос представляет собой составной формат MTOM с границами, Ответ простой без границ