gpt4 book ai didi

java - Spring-ws客户端mtom

转载 作者:行者123 更新时间:2023-11-30 04:31:22 29 4
gpt4 key购买 nike

我正在尝试调用 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 附件编码(marshal) jaxb 请求的示例吗?我们将不胜感激。

最佳答案

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

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

关于java - Spring-ws客户端mtom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14579441/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com