在java中使用wsdl、用户名和密码调用soap Web服务

在java中使用wsdl、用户名和密码调用soap Web服务,java,soap,x509,wsse,Java,Soap,X509,Wsse,我是SOAPWeb服务新手。有人能告诉我如何使用提供的wsdl及其用户名和密码在JAVA中使用x509发出soap请求吗。我在.NET中有很多代码。但我仍然不知道如何在java中使用x509身份验证来形成请求。 任何帮助都将不胜感激。 提前谢谢 在“身份验证”选项卡中使用soap UI和基本身份验证。。下面是我得到的错误 <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.

我是SOAPWeb服务新手。有人能告诉我如何使用提供的wsdl及其用户名和密码在JAVA中使用x509发出soap请求吗。我在.NET中有很多代码。但我仍然不知道如何在java中使用x509身份验证来形成请求。 任何帮助都将不胜感激。 提前谢谢

在“身份验证”选项卡中使用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>

http://www.w3.org/2005/08/addressing/soap/fault
s:发件人
a:无效安全
验证邮件的安全性时出错。

请参见,如果您已经获得了WSDL,那么应该使用工具SoapUI,它将帮助您创建请求并查看响应。您可以使用这个提供用户名和密码的工具轻松生成示例请求,并查看基于请求的响应

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

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

请参见,如果您有WSDL,您应该使用工具SoapUI,它将帮助您创建请求并查看响应。您可以使用这个提供用户名和密码的工具轻松生成示例请求,并查看基于请求的响应

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

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

我尝试使用soapUI,但它给出了身份验证错误。请检查我已编辑问题您是否尝试通过最左侧面板上的身份验证?请分享屏幕截图,以便我告诉您提供详细信息的确切点。以下是@ShashwatSharma您的标题部分为空的屏幕截图,这是soap服务在几种情况下所必需的。这是您创建的默认值吗?尝试共享新请求,以便如果您还没有完成,我可以进一步推断问题的事实。@ShaswatSharma不是根据“身份验证和标头”选项卡中提供的信息自动生成标头的吗。?如果没有,我如何添加它?我的意思是,必须在标题中传递的安全令牌和时间戳是根据我们在下面的选项卡中提供的信息自动生成的。我甚至将WS-Addressing相关设置中的“必须理解”更改为true。我尝试使用soapUI,但它给出了身份验证错误。请检查我已编辑问题您是否尝试通过最左侧面板上的身份验证?请分享屏幕截图,以便我告诉您提供详细信息的确切点。以下是@ShashwatSharma您的标题部分为空的屏幕截图,这是soap服务在几种情况下所必需的。这是您创建的默认值吗?尝试共享新请求,以便如果您还没有完成,我可以进一步推断问题的事实。@ShaswatSharma不是根据“身份验证和标头”选项卡中提供的信息自动生成标头的吗。?如果没有,我如何添加它?我的意思是,必须在标题中传递的安全令牌和时间戳是根据我们在下面的选项卡中提供的信息自动生成的。我甚至将WS-Addressing相关设置中的“必须理解”更改为“真”。