【问题标题】:Calling soap webservice using wsdl, username and password in java在java中使用wsdl、用户名和密码调用soap webservice
【发布时间】:2016-09-16 10:00:13
【问题描述】:

我是肥皂网络服务的新手。有人可以告诉我如何使用提供的 wsdl 及其用户名和密码在 JAVA 中使用 x509 发出肥皂请求。我在 .NET 中有很多代码。但是我仍然对如何在java中使用x509身份验证形成请求一无所知。 任何帮助,将不胜感激。 提前致谢。

在 AUTH 选项卡中使用soap UI 并使用基本身份验证。以下是我得到的错误。

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
   <s:Header>
      <a:Action s:mustUnderstand="1">http://www.w3.org/2005/08/addressing/soap/fault</a:Action>
   </s:Header>
   <s:Body>
      <s:Fault>
         <s:Code>
            <s:Value>s:Sender</s:Value>
            <s:Subcode>
               <s:Value xmlns:a="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">a:InvalidSecurity</s:Value>
            </s:Subcode>
         </s:Code>
         <s:Reason>
            <s:Text xml:lang="en-US">An error occurred when verifying security for the message.</s:Text>
         </s:Reason>
      </s:Fault>
   </s:Body>
</s:Envelope>

【问题讨论】:

    标签: java soap x509 wsse


    【解决方案1】:

    看,如果你有 WSDL,你应该使用 SoapUI 工具来帮助你创建请求并查看响应。您可以使用此提供用户名和密码的工具轻松生成示例请求,并根据请求查看响应。

    它显示了完整和详细的请求版本,您可以在其中轻松映射必填和可选字段。

    一旦根据您的要求获得了完美的请求样本,您就可以使用 JAXB 进行进一步的处理。您可以从 WSDL 生成 Java 类,并在您从 SoapUI 准备好的请求的帮助下设置值。 下一步是将对象转换为 XML,反之亦然,您可以通过编组和解组来完成。

    【讨论】:

    • 我尝试使用 soapUI ,但它给出了身份验证错误。请检查我已编辑问题
    • 您是否尝试过通过最左侧面板上的身份验证?请分享屏幕截图,以便我告诉您提供详细信息的确切点。
    • 这是屏幕截图@ShashwatSharma dropbox.com/s/lo1khg4chztlm1q/te.png?dl=0
    • 您的标题部分是空的,这在某些情况下是肥皂服务所必需的。那是您创建的默认设置吗?尝试分享新的请求,这样如果你还没有完成,我会进一步推断问题的事实。
    • @ShaswatSharma 标题不是根据身份验证和标题选项卡中提供的信息自动生成的吗?如果没有,我该如何添加它?我的意思是必须在标头中传递的安全令牌和时间戳是根据我们在下面的选项卡中提供的信息自动生成的。我什至在 WS Addressing 相关设置中将必须理解更改为 true。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    相关资源
    最近更新 更多