一些想法:
- 获取 SOAP-UI 进行测试。它比任何客户都好
产生。您也可以在服务之间使用它。
安装 SOAP-UI 后,以调试模式启动 glassfish。部署您的网络服务。创建一个新的 SOAP-UI 项目并将其指向您部署的 Web 服务的 WSDL 文件。
警告:SOAP-UI 并不漂亮,但它非常好。
导入 WSDL 后,打开 SOAP 项目节点,直到看到 Web 服务的操作。
您应该会看到如下内容:
扩展操作并填写请求的缺失部分。缺失值将由 ?在 XML 请求中,它们在初始请求中应该如下所示:
<ecol:accountTotalDue>
<!--Optional:-->
<acc:AccountKeyInfo>
<!--Optional:-->
<acc:Client_Ref>?</acc:Client_Ref>
<!--Optional:-->
<acc:Debt_ID>?</acc:Debt_ID>
</acc:AccountKeyInfo>
<!--Optional:-->
<acc:Total_Due>?</acc:Total_Due>
</ecol:accountTotalDue>
您可以像这样对它们进行硬编码:
<ecol:accountTotalDue>
<!--Optional:-->
<acc:AccountKeyInfo>
<!--Optional:-->
<acc:Client_Ref>12834756183754</acc:Client_Ref>
<!--Optional:-->
<acc:Debt_ID>?</acc:Debt_ID>
</acc:AccountKeyInfo>
<!--Optional:-->
<acc:Total_Due>10000000.00</acc:Total_Due>
</ecol:accountTotalDue>
请注意,您也可以编写脚本,例如我的 Web 服务在特殊标题部分中需要 GUID 和消息日期时间,因此我执行以下操作:
<irix:MsgReqHdr>
<irix:MsgGUID>${=java.util.UUID.randomUUID()}</irix:MsgGUID>
<!--Optional:-->
<irix:MsgDateTime>${=javax.xml.datatype.DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar.getInstance())}</irix:MsgDateTime>
</irix:MsgReqHdr>
您可以设置不同的请求来测试不同的场景。如果您正在进行认真的 Web 服务开发,那么它确实是必不可少的。它也做 REST。
这对我来说通常比其他任何事情都好得多。我已经用 JBoss、Glassfish、Karaf、Fuse 和其他服务器完成了这项工作,所以它可以工作。