我正在使用基本64編碼的二進制數據對象使用webservice。相應的XSD元素看起來是這樣的:不使用附件的SOAP消息
<xs:element name="Document" maxOccurs="unbounded"
xmime:expectedContentTypes="application/octet-stream">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:base64Binary">
<xs:attribute name="id" type="xs:anyURI" use="required">
<xs:annotation>
<xs:documentation>documentation text...</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
使用Maven的JAXWS - 工具 - 插件與將JBossWS-CXF的客戶端(本地客戶端會導致同樣的錯誤)的東西似乎缺少生成我的課之後。無論我如何嘗試啓用MTOM,它都不會發送任何附件,但它將二進制數據保留在主XML中。我嘗試配置SOAPBinding,並使用帶和不帶閾值的MTOMFeature創建端口。基本上它總是看起來像這樣。
<ns4:Document id="Document01">dGhpcyBpcyBzYW1wbGUgZG9jdW1lbnQgbm8uIDE=</ns4:Document>
在xsd文件中是否有錯誤,插件是問題還是隻是我忘了什麼?
-
與其他插件生成的類(JAXWS-Maven的插件)後,我得到了在控制檯中一個有趣的警告。它告訴我,xmine:expectedContentType屬性存在於一個無效元素中。我很確定我看到了幾個這樣做的例子,它完全一樣,所以我不知道這是否會導致任何問題。
這並沒有改變任何東西,我發現類很好。
-
這似乎是這個方法調用我們的處理程序實現的一個問題:
ctx.getMessage();
CTX是投入SOAPHandler實現的方法的handleMessage這個SOAPMessageContext對象。一旦執行此方法,請求中就不會有附件。我很好奇吸氣劑如何禁用整個請求的附件。有任何想法嗎?