我使用 Eclipse IDE 创建了一个动态 Web 项目,下面给出了公开的 Web 服务方法,即 CallPaySecure()。
我想知道如何创建一个接受 SOAP 头的 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>
我用java编写了以下代码
@WebMethod
@WebResult(name="CallPaySecureResult")
public String CallPaySecure(
@WebParam(name="strCommand")String strCmd,
@WebParam(name="strXML") String strXML ){
}
但是这段代码只能从以下标签中获取值。
<strCommand>string</strCommand>
<strXML>string</strXML>
1.我的 WSDL 是由 Glassfish 服务器 v4 自动生成的,我如何修改 WSDL 或者我应该使用什么 java 代码来接受上述 XML SOAP 请求?
2.如何定义<soap:Header>
在 WSDL 中,以便我可以访问 <Version>
中的值, <UserID>
和<Password>
在我的网络服务 CallPaySecure() 中?
我是第一次使用 SOAP。
感谢您的建议。
最佳答案
使用 IDE 从 WSDL 生成 Java 客户端。在生成的 Java 类文件中编写您的实现逻辑。
这里的 Fox 示例是如何从 eclipse 生成 Java 客户端
1) 从文件 -> 新建 ->动态 Web 项目创建动态 Web 项目
2) 单击项目并打开上下文菜单新建 -> 其他,然后从窗口中选择Web 服务客户端
4) 单击“完成”。所有必需的 java 文件将在动态 Web 项目中生成
如果你想在没有任何IDE的情况下生成Java客户端 HERE是使用 wsimport
的教程关于java - 如何编写 WSDL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35433595/