如何编写WSDL?

时间:2016-02-16 13:13:23

标签: java web-services soap wsdl

我使用Eclipse IDE创建了一个Dynamic Web Project,下面给出了公开的Web服务方法,即.CallPaySecure()。

我想知道如何创建一个接受soap-header的soap服务,如下所示。



<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <RequestorCredentials xmlns="https://paysecure/merchant.soap.header/">
      <Version>string</Version>
      <UserCredentials>
        <UserID>string</UserID>
        <Password>string</Password>
      </UserCredentials>
    </RequestorCredentials>
  </soap:Header>
  <soap:Body>
    <CallPaySecure xmlns="https://paysecure/merchant.soap/">
      <strCommand>string</strCommand>
      <strXML>string</strXML>
    </CallPaySecure>
  </soap:Body>
</soap:Envelope>
&#13;
&#13;
&#13;

我在java中编写了以下代码

@WebMethod

@WebResult(name="CallPaySecureResult")

&#13;
&#13;
public String CallPaySecure(
			@WebParam(name="strCommand")String strCmd,
			@WebParam(name="strXML") String strXML ){
  }
&#13;
&#13;
&#13;

但是这段代码只能从以下标签中获取值。

&#13;
&#13;
<strCommand>string</strCommand>      
<strXML>string</strXML>
&#13;
&#13;
&#13;

1.我的WSDL是由Glassfish服务器v4自动生成的,我如何修改WSDL或者我应该用什么java代码来接受上面提到的XML SOAP请求?

2.如何在WSDL中定义<soap:Header>,以便我可以在我的Web服务CallPaySecure中访问<Version><UserID><Password>中的值()?

我第一次使用SOAP。

感谢您的建议。

1 个答案:

答案 0 :(得分:2)

使用IDE从WSDL生成Java客户端。在生成的Java类文件中编写实现逻辑。

这里的Fox示例是如何从eclipse生成Java客户端

1)从文件 - &gt;创建动态网站项目新增 - &gt;动态网站项目

2)点击项目并打开上下文菜单新建 - >其他并从窗口中选择 Web服务客户端

enter image description here

3)单击浏览,然后选择WSDL地址或本地WSDL文件 enter image description here

4)单击“完成”。将在Dynamic web project

中生成所有必需的java文件

如果你想使用 wsimport