我正在使用基本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对象。一旦执行此方法,请求中就不会有附件。我很好奇吸气剂如何禁用整个请求的附件。有任何想法吗?