Я пытаюсь вызвать веб-службу и добавить вложение к моему запросу, используя mtom. 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: Provider net.sf.saxon.TransformerFactoryImpl not found
Есть ли у кого-нибудь идеи о том, что я делаю неправильно, или кто-нибудь может показать мне пример того, как маршалировать запрос jaxb с вложением mtom из клиента spring-ws? Помощь будет принята с благодарностью.