【问题标题】:Spring-ws client mtomSpring-ws 客户端 mtom
【发布时间】:2013-01-12 19:39:17
【问题描述】:

我正在尝试调用 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: Provider net.sf.saxon.TransformerFactoryImpl not found

是否有人对我做错了什么有任何想法,或者任何人都可以向我展示如何使用来自 spring-ws 客户端的 mtom 附件编组 jaxb 请求的示例?非常感谢您的帮助。

【问题讨论】:

    标签: java spring jaxb spring-ws mtom


    【解决方案1】:

    这实际上就像将 saxon 添加到我的类路径/pom 中一样简单。我认为spring-ws客户端中的saaj消息内容坚持使用saxon将mtom附件的源推送到生成的请求中。

    我的代码实际上是有效的,但我会把它留在这里,因为在网上进行大量搜索时,我找不到任何关于如何从 spring-ws 客户端发送带有 mtom 附件的 jaxb 请求的好例子,所以其他人可能会觉得这很有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-08
      相关资源
      最近更新 更多