Websphere web服务JAX-WS没有响应MTOM响应



我使用IBM websphere 8.0,并在服务器上部署了一个web服务,使用注释@MTOM(enabled=true,threshold=0)启用了MTOM。我可以看到MTOM为发送附件工作,但是webservice在响应中发送附件时不使用MTOM。web服务客户端也启用了MTOM。我尝试使用普通的java jax-ws客户端以及SoapUI。以下是来自服务器的示例响应。附件总是内联的。

HTTP/1.1 200 OK X-Powered-By: Servlet/3.0 Content-Type: text/xml; charset=UTF-8 Content-Language: en-US Transfer-Encoding: chunked Date: Tue, 05 Jul 2016 18:17:12 GMT <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <ns3:processRequestResponse > <ns5:Response> <ns5:MessageHeader> <ns5:MessageType>RECEIPT.DOWNLOAD</ns5:MessageType> <ns5:MessageVersion>1</ns5:MessageVersion> <ns5:MessageID>1</ns5:MessageID> <ns5:DateTimeStamp>2016-07-05T12:17:12</ns5:DateTimeStamp> </ns5:MessageHeader> <ns5:ReplyHeader> <ns5:ReplyStatusCode>0</ns5:ReplyStatusCode> <ns5:ReplyStatusValue>SUCCESS</ns5:ReplyStatusValue> </ns5:ReplyHeader> <ns5:Payload> <ns6:DownloadAttachmentResponse/> </ns5:Payload> <ns5:receiptImages>/9j/4AAQSkZJRgABAgAAAQABAAD</ns5:receiptImages> <ns5:receiptImages>/9j/4AAQSkZJRgABAgAAAQABAAD</ns5:receiptImages> </ns5:Response> </ns3:processRequestResponse> </soapenv:Body> </soapenv:Envelope>

这是我的响应对象的样子

`@XmlRootElement(name =         "Response",namespace="http://response.inboundgateway.ws.axol.cps.application.usbank.com/")
@XmlSeeAlso(DownloadAttachmentResponse.class)
public class Response {
    @XmlElement(name = "MessageHeader", required = true)
    protected Response.MessageHeader messageHeader;
    @XmlElement(name = "ReplyHeader", required = true)
    protected ReplyHeaderType replyHeader;
    @XmlElement(name = "Payload", required = true)
    protected Response.Payload payload;
    @XmlMimeType("image/jpeg")
    protected List<Image> receiptImages;`

确保您没有在webservices.xml中禁用MTOM,这将覆盖基于注释的配置。

从这里的文档。

对于JAX-WS web服务,使用webservices.xml部署描述符是可选的,因为您可以使用注释来指定部署描述符文件中包含的所有信息。您可以使用部署描述符文件来扩展或覆盖现有的JAX-WS注释。在webservices.xml部署描述符中定义的任何信息都会覆盖由注释指定的任何相应信息。

相关内容

  • 没有找到相关文章

最新更新