当前位置: 首页 > 知识库问答 >
问题:

Spring-ws客户端mtom

柳联
2023-03-14

我正在尝试调用一个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请求的示例?我们将不胜感激。

共有1个答案

苏承载
2023-03-14

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

我的代码实际上是工作的,但我将它留在这里,因为在网上搜索了很多,我找不到任何关于如何从spring-ws客户机发送带有mtom附件的jaxb请求的好例子,所以其他人可能会发现这很有用。

 类似资料:
  • 问题内容: 我尝试使用JAX-WS检索客户端IP,我曾经使用过: 我在要求中得到一个,mc不为空。 我的问题是,因为我使用的是Java独立应用程序,所以要使用哪个JAR ? 谢谢 问题答案: 如何获取jax-ws服务的Web服务客户端地址取决于您是否: 将Web服务作为servlet运行(在Java EE容器中),或者 将Web服务作为独立应用程序运行(Java SE 6或7)。 Servlet

  • 有时候需要让workerman作为客户端以ws/wss协议去连接某个服务端,并与之交互。 以下是示例。 1、workerman作为ws客户端 <?php use WorkermanWorker; use WorkermanConnectionAsyncTcpConnection; require_once __DIR__ . '/../Workerman/Autoloader.php'; $wo

  • 我有一个Web服务,我试图使用以下客户端代码调用它: 在服务器端(Tomcat),webservice实现如下: CxfAdd。java: CxfAddImpl。java: 但是,当我运行客户端代码时,在服务器端我得到以下错误: 似乎我没有发送ws-addressing属性,有人能帮我找出代码中的错误或缺失吗?非常感谢。

  • 问题:CXF能否基于WS-SecurityPolicy文件自动为客户端配置WS-Security? 如果是的话,是否有任何关于实际这样做的文件?我花了几个小时查看CXF站点并进行搜索,但没有找到答案。 CXF留档显示“CXF 2.2引入了对使用WS-SecurityPolicy配置WSS4J的支持,而不是WS-Security页面上记录的自定义配置”,并且还显示“在CXF 2.2中,如果cxf-r

  • 我正在努力做一些基本的事情,但我的头脑还没有完全清醒过来。我有一个spring boot应用程序,它应该公开一个rest url。 我是这样做的: 正如您所见,它使用的是另一个服务,我正试图用一个外部客户机实现该服务: 界面看起来像: 当MdmhClient在调用: 我知道要解决这个问题,我需要将证书导入jre。我正在运行Intellij IDE,并将项目的jdk路径设置为: 我还通过firefo

  • 有时候需要让workerman作为客户端以ws/wss协议去连接某个服务端,并与之交互。 以下是示例。 1、workerman作为ws客户端 <?php use WorkermanWorker; use WorkermanConnectionAsyncTcpConnection; require_once __DIR__ . '/../Workerman/Autoloader.php'; $wor