2016-07-05 39 views
1

我正在使用IBM websphere 8.0,並在服務器上部署了一個web服務,並使用註釋@MTOM(enabled = true,threshold = 0)啓用了MTOM。我可以看到MTOM正在爲發送附件工作,但webservice在響應中發送附件時不使用MTOM。 web服務客戶端也啓用了MTOM。我嘗試使用普通的java jax-ws客戶端以及SoapUI。以下是來自服務器的示例響應。附件總是內聯的。Websphere webservice JAX-WS沒有響應MTOM響應

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;` 
+0

您有沒有在** webservices.xml **中禁用它? –

+0

你釘了它。是的,我發現它被禁用。謝謝你的幫助。我希望這篇文章有助於他人未來 – golmalhe

+0

太棒了!轉貼爲答案。 –

回答

1

請確保您有在的webservices.xml沒有禁用MTOM,這將覆蓋基於註解的配置。

來自文檔here

對於JAX-WS Web服務,使用webservices.xml部署描述符是可選的,因爲您可以使用註釋來指定部署描述符文件中包含的所有信息。您可以使用部署描述符文件來擴充或覆蓋現有的JAX-WS註釋。 您在webservices.xml部署描述符中定義的任何信息都會覆蓋由註釋指定的任何相應信息。