HTTP 标头中缺少 Spring WebServiceTemplate SOAPAction

2023-12-28

我在通过 Spring-ws WebServiceTemplate 调用 SOAP 1.2 WebService 时遇到困难。发出的请求在 Http 标头中缺少 SOAPAction,并且服务器抛出错误“无法处理没有有效操作参数的请求。请提供有效的肥皂操作。”通过使用wireshark进行监控,我能够找出缺少SOAP Action。我也不支持任何代理。

我通过 TCP Mon(如 SOAP UI 之类的工具)运行请求,确保尝试发送的 SOAP XML 有效,并且能够获得响应。

这是我的弹簧配置:

<?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans  
                        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
                        http://www.springframework.org/schema/util
                        http://www.springframework.org/schema/util/spring-util-3.0.xsd">

<bean id="messageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory">
    <property name="soapVersion">
    <util:constant static-field="org.springframework.ws.soap.SoapVersion.SOAP_12" />
    </property>
</bean>

<bean id="webServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate">
 <constructor-arg ref="messageFactory" />
<property name="defaultUri" value="https://ecomapi.networksolutions.com/soapservice.asmx" />
<property name="messageSender">
    <bean class="org.springframework.ws.transport.http.CommonsHttpMessageSender" />     </property>
</bean>

这是我的java代码:

            public void simpleSendAndReceive() {
            try{
            StreamSource source = new StreamSource(new StringReader(MESSAGE));
            StreamResult result = new StreamResult(System.out);
            SoapActionCallback actionCallBack = new SoapActionCallback("https://ecomapi.networksolutions.com/soapservice.asmx") {
                public void doWithMessage(WebServiceMessage msg) {
                    SoapMessage smsg = (SoapMessage)msg;
                    smsg.setSoapAction("http://networksolutions.com/ReadOrder");
                }
            };
            webServiceTemplate.sendSourceAndReceiveToResult(
                    "https://ecomapi.networksolutions.com/soapservice.asmx",
                     source,
                     new SoapActionCallback("http://networksolutions.com/ReadOrder"),
     //                      actionCallBack,
                     result);


            System.out.println(source.getInputStream().toString());
            System.out.println(result.getWriter().toString());

            }catch (SoapFaultClientException e) {
                System.out.println(e.getFaultCode());
                System.out.println(e.getFaultStringOrReason());
                System.out.println(e.fillInStackTrace().getLocalizedMessage());
            } catch (WebServiceIOException we) {
                System.out.println(we.getRootCause());
            }
        }

我遇到了同样的问题,我将其追溯到 com.sun.xml.messaging.saaj.soap.MessageImpl 实现的 1.3.2 版本中的错误(http://java.net/jira/browse/SAAJ-37 http://java.net/jira/browse/SAAJ-37)。 我升级到1.3.19版本,一切都很好。

问题:-

在将请求写入输出流之前,会调用 saveChanges() 方法。该类的 1.3.2 版本在“saveChanges”方法的实现中覆盖了“Content-Type”请求标头。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTTP 标头中缺少 Spring WebServiceTemplate SOAPAction 的相关文章

随机推荐

  • Selenium:如何禁用 firefox 和 python 的图像加载?

    我读过类似的问题 一个应该是答案 但当我尝试时 它只给出了部分解决方案 我参考这个问题 在 Selenium Python 中禁用图像 https stackoverflow com questions 25214473 disable i
  • 需要简单解释一下注入方法

    1 2 3 4 inject 0 result element result element gt 10 我正在查看这段代码 但我的大脑没有记住数字 10 如何成为结果 有人介意解释一下这里发生了什么吗 您可以将第一个块参数视为累加器 每次
  • 如何通过 Python 访问 Windows 屏幕键盘配件

    我正在通过 Python Card 创建一个触摸屏项目 要在文本框中填充数据 我可以将 Windows 屏幕键盘引入到我的程序中 而不是自己创建软键盘吗 我正在尝试使用 PyWin32 获取 Windows 屏幕键盘 但它无法正确执行 有没
  • WPF MVVM 和视图继承

    我有大约十几个不同的视图 除了它们绑定的属性名称之外 它们几乎完全相同 例如 以下部分形成两个不同的视图
  • Android 版 PayPal MPL 返回错误 ID 589023

    我是 Android 开发新手 当我点击 PayPal 应用程序时 我遇到以下问题paypal登录成功后的支付按钮 它显示类似 ANDROID 589023 的错误 贝宝错误589023具体有这样的含义 如果因货币兑换而舍入小数部分 则可能
  • 如何在Python中将字符串变为大写? [复制]

    这个问题在这里已经有答案了 如何在 Python 3 4 中将字符串转换为全部大写 例如 我想转换 string to STRING 我已经尝试过 upper方法 但它返回 string upper
  • 如何禁用asp.net razor 视图中的旋转按钮?

    在模型类中列名称是public int CTScore get set 在 Razor 视图中我想用它作为 Html EditorFor model gt model CTScore 它显示为编辑器框以及向上 向下箭头旋转按钮 但我不需要显
  • easylist 中的 AD url 列表

    Adblockplus如何使用https easylist downloads adblockplus org easylist txt https easylist downloads adblockplus org easylist t
  • VBA获取连接器“从形状”和“到形状”

    我在 Excel 中有一个流程设计 使用形状 连接器等 我需要的是有一个矩阵 并且每个形状都有所有的前任和所有的后继 在 VBA 中 为此我尝试执行以下操作 我列出了所有连接器 Shapes AutoShapeType 2 对于每一个 我想
  • 如何解决这个问题呢? SVN 1.8.19:E170000:无法识别的 URL 方案

    我想在我的linux服务器 SUSE Linux Enterprise Server 11 上使用svn 并且我安装了svn 1 8 19 但是当我使用 svn update时 出现问题 svn E170000 Unrecognized U
  • 使用 XCopy 将具有精确结构的文件复制到另一个目录中

    我想复制这个文件C Majid File text txt to D Copied C Majid File text txt gt D Copied 我想使用 Xcopy 将该文件及其完整目录复制到D Copied 那么我应该有这样的东西
  • 无法将 FindFileData.cFileName 转换为字符串

    我取得了很大的进展 但有两个问题几天来一直困扰着我 最大的就是我想保存FindFileData cFileName作为字符串 但我不能 有什么帮助吗 我从这里复制了这个 如何将wstring转换为字符串 https stackoverflo
  • 拟合 beta 分布时出错:函数 mle 无法估计参数,错误代码为 100

    我正在尝试使用fitdist 函数从fitdistrplus包以使我的数据适合不同的分布 假设我的数据如下所示 x c 1 300000 1 220000 1 160000 1 300000 1 380000 1 240000 1 1500
  • 使用 noscript 嵌入额外的样式

    我有一个 XHTML 严格页面 其中有一个由 Javascript 控制的不可见 div 通过脚本和鼠标悬停事件将 div 设置为透明且可见 以使 div 在悬停时不透明 当有人使用没有 javascript 的浏览器 或带有 noscri
  • 如何从 JSP 访问 JavaScript 中的 Java 对象 [重复]

    这个问题在这里已经有答案了 我在 JSP 中有一个下拉框 列出了一个 Java 对象 通过 MVC 控制器的 addAttribute 访问该对象 现在 从下拉框中选择一个选项时 我想在 div 中显示所选员工的其他详细信息 例如 empl
  • Spring数据Redis HGETALL操作

    我在用Redis作为我的 Spring Web 应用程序的数据存储并使用Spring Data Redis作为我的客户与之互动Redis 我在用HashMap存储一个具有多个字段的对象 我可以将所有字段放入Redis立即使用DefaultR
  • iPhone 中可扩展的 tableView

    我想做这种类型的可展开 可折叠表视图 如图所示 有类别和子类别 例如 健康与美丽 是一个类别 当我单击此单元格时 它会打开子类别 如下图所示 那么如何制作这种类型的表格视图呢 请建议我 最后 我在下面得到了两个非常有用的帮助链接 其中准确描
  • 即使添加 SSH 密钥后,Github 上的身份验证仍失败

    当我尝试将代码推送到我的存储库时 我收到 fatal Authentication Failure 我也在我的 github 帐户上添加了公钥 当我做 ssh i email protected cdn cgi l email protec
  • Firebase 托管 - 功能重写定价

    如果你使用Firebase 托管将请求定向到云功能通过重写 通过 托管的请求流量是否会计入 Firebase 托管GB 已转移 忽略云功能的计费 换句话说 Do Firebase 托管当请求到来时 函数重写本身要花钱吗 需要明确的是 明显地
  • HTTP 标头中缺少 Spring WebServiceTemplate SOAPAction

    我在通过 Spring ws WebServiceTemplate 调用 SOAP 1 2 WebService 时遇到困难 发出的请求在 Http 标头中缺少 SOAPAction 并且服务器抛出错误 无法处理没有有效操作参数的请求 请提