Web Services 从WSDL生成请求/响应XML

w8biq8rn  于 12个月前  发布在  其他
关注(0)|答案(6)|浏览(260)

有没有一种方法可以从WSDL文件中生成请求和响应XML格式-如果Web服务现在还没有运行的话。
SoapUI不会给予响应,除非它通过请求联系Web服务。有没有其他工具可以做到这一点?
我应该假设这些信息是可用的--因为没有它--像Axis/JAXWS等客户端存根框架将无法生成存根来生成请求,然后解释响应。

shstlldc

shstlldc1#

试试这个在线工具:https://www.wsdl-analyzer.com。它看起来是免费的,而且不仅仅是为请求和响应生成XML。
还有这个:https://www.oxygenxml.com/xml_editor/wsdl_soap_analyzer.html,可以下载,但不是免费的。

2ekbmq32

2ekbmq322#

我使用SOAPUI 5.3.0,它有一个创建请求/响应的选项(也使用WSDL),你甚至可以创建一个mock服务,当你发送请求时它会响应。过程如下:
1.右键单击您的项目并选择New Mock Service选项,这将创建模拟服务。
1.右键单击模拟服务并选择New Mock Operation选项,该选项将创建可用作模板的响应。
编辑#1:
查看SoapUI link的最新版本。有一个专业版以及免费的开源版本。

1rhkuytd

1rhkuytd3#

自己做这件事将使你给予对WSDL是如何构造的以及它是如何完成你的工作的深入了解。这是一个很好的学习机会。如果你只有WSDL的URL,这可以使用soapUI来完成。(我使用的是soapUI 5.2.1)如果您实际上拥有完整的WSDL文件,你甚至不需要soapUI。问题的标题是“请求和响应XML”,而问题的正文是“请求和响应XML格式”,我将其解释为请求和响应的模式。无论如何,下面将给予您可以在XSD2XML上使用的模式,以生成示例XML。
1.启动一个“NewSoapProject”,输入项目名称和WSDL位置;选择“CreateRequests”,取消选择其他选项并单击OK。
1.在左侧的“Project”树下,右键单击一个接口并选择“Show Interface Viewer”。
1.选择“WSDL内容”选项卡。
1.您应该在右侧看到WSDL文本;查找下面以“wsdl:types”开头的块,它是输入和输出消息的模式。
1.每个模式定义都以<s:element name="GetWeather">开头,以</s:element>结尾。
1.将块复制到文本编辑器中;在此块上方添加:<?xml version="1.0" encoding="UTF-8"?> <s:schema xmlns:s="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
1.在复制的XML块下面,添加</s:schema>
1.决定是否需要“UTF-16”而不是“UTF-8”
1.“s:“和“xmlns:s”应该与您复制的块相匹配(步骤5)
1.保存扩展名为“.xsd”的文件;如果您有“XML Copy Editor”或其他类似工具(可能是XML Spy),您应该检查这是格式良好的XML和有效的模式。
1.对soapUI右侧窗格中的所有“元素”项重复此操作,直到达到
1.这样,您将得到一些您可能不感兴趣的类型定义。如果您想挑选,请使用以下方法:在类型定义下面的WSDL文本中的“wsdl:portType”下查找“wsdl:operation”项。它们将具有“wsdl:input”和“wsdl:output”。从“wsdl:input”和“wsdl:output”中获取消息名称。将它们与可能在WSDL中的“wsdl:portType”项之上的“wsdl:message”名称进行匹配。从“wsdl:message”项中获取“wsdl:part”元素名称,并在“wsdl:这些将是您感兴趣的模式。
您可以在http://www.webservicex.com/globalweather.asmx?wsdl上使用WSDL尝试上述过程

yhived7q

yhived7q4#

Parasoft是一个可以做到这一点的工具。我在过去的工作场所使用这个工具做过这件事。你可以在Parasoft SOATest中生成一个请求,并在Parasoft Virtualize中获得一个响应。它确实很贵。但是Parasoft Virtualize现在有一个免费的社区版本,你可以从WSDL中生成响应消息。你可以从parasoft community edition下载

brqmpdu1

brqmpdu15#

既然你说web服务现在还没有运行,你可以通过创建mockservices来实现这一点,mockservices将创建示例响应格式。

ljo96ir5

ljo96ir56#

Postman最近增加了对WSDL的支持。我尝试导入几个不同的WSDL模式,它生成了带有实际XML内容的示例请求。值得一试。
https://blog.postman.com/postman-now-supports-wsdl/

相关问题