2016-07-05 8 views
1

私はIBM Websphere 8.0を使用しており、注釈@MTOM(enabled = true、threshold = 0)を使用してMTOMを有効にしたサーバーにWebサービスをデプロイしています。 MTOMが送信添付ファイルのために働いているのを見ることができますが、Webサービスは添付ファイルを送信するときに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>

これは私のレスポンスオブジェクトを使用すると、アノテーションベースの設定をオーバーライドしますwebservices.xmlので無効になっていないMTOMを持っていることを確認し

`@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

どのように見えるかです。

ドキュメントhereから。

JAX-WS Webサービスの場合、注釈を使用してデプロイメント記述子ファイルに含まれるすべての情報を指定できるため、webservices.xmlデプロイメント記述子の使用はオプションです。デプロイメント記述子ファイルを使用して、既存のJAX-WSアノテーションを補完または上書きすることができます。 webservices.xmlデプロイメント・ディスクリプタで定義した情報は、注釈で指定された対応する情報をすべてオーバーライドします。

関連する問題