我正在尝试调用 Web 服务并使用 mtom 将附件添加到我的请求中。在我正在调用的 Web 服务上启用了 Mtom,我可以使用 soapui 调用该服务。
请求的架构如下所示;
<element name="MyRequest">
<complexType>
<sequence>
...
<element name="content" type="base64Binary"
xmime:expectedContentTypes="text/xml" />
</sequence>
</complexType>
</element>
然后在我的 java 代码中创建 jaxb 请求对象并尝试从字符串中设置内容;
MyRequest request = factory.createMyRequest();
StreamSource ss = new StreamSource(new StringReader("some content..."));
request.setContent(ss);
WebServiceTemplate wst = ...;
wst.marshalSendAndReceive(request);
我已将编组器设置为启用 mtom(尽管我不确定客户端是否需要这样做);
<bean id="my-marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="contextPath" value="..."/>
<property name="mtomEnabled" value="true"/>
</bean>
但我得到以下异常;
javax.xml.transform.TransformerFactoryConfigurationError:未找到提供程序 net.sf.saxon.TransformerFactoryImpl
是否有人对我做错了什么有任何想法,或者任何人都可以向我展示如何使用来自 spring-ws 客户端的 mtom 附件编组 jaxb 请求的示例?帮助将不胜感激。