【发布时间】:2011-01-30 13:04:42
【问题描述】:
我需要 WSDL 解析器来获取消息、端口类型、操作、绑定、服务…… 我希望一些解析器已经存在。那么,有什么指导方针吗?
【问题讨论】:
标签: java web-services wsdl
我需要 WSDL 解析器来获取消息、端口类型、操作、绑定、服务…… 我希望一些解析器已经存在。那么,有什么指导方针吗?
【问题讨论】:
标签: java web-services wsdl
希望此链接对您选择 WSDL 解析器有用,Parse WSDL Effectively(查看此链接的存档:Web Archive)。
我尝试过使用Apache Woden、WSDL4J 和Membrane SOA。 Apache Woden 或 Membrane SOA 就可以了。
【讨论】:
有几个 Web 服务堆栈可用。
查看 Metro 堆栈。开源,可直接在 Java 6 中使用。
【讨论】:
f wsdl = '''
<definitions name="AgencyManagementService"
xmlns:ns1="http://www.example.org/NS1"
xmlns:ns2="http://www.example.org/NS2">
<ns1:message name="SomeRequest">
<ns1:part name="parameters" element="SomeReq" />
</ns1:message>
<ns2:message name="SomeRequest">
<ns2:part name="parameters" element="SomeReq" />
</ns2:message>
</definitions>
'''
def xml = new XmlSlurper().parseText(wsdl).declareNamespace(ns1: 'http://www.example.org/NS1', ns2: 'http://www.example.org/NS2')
println xml.'ns1:message'.'ns1:part'.size()
println xml.'ns2:message'.'ns2:part'.size()
希望这会有所帮助。可以从任何其他 Java 类调用 Groovy 类。将所有 XML 劳动力转移到 Groovy :)
【讨论】:
在http://docs.oracle.com/javase/6/docs/technotes/tools/share/wsimport.html 上查看wsimport 工具文档。它是一个标准的 JDK 工具,可以生成基于 JAXB 的 Java 工件以与 Web 服务交互。
【讨论】:
您可以使用membrane-soa 来解析wsdl 文件。从 http://mvnrepository.com/artifact/com.predic8/soa-model-core 添加依赖。
您可以在http://membrane-soa.org/soa-model/ 找到文档。
【讨论】:
使用http://sourceforge.net/projects/wsdl4j/
public Definition readWSDLFile(String location) throws WSDLException {
WSDLReader reader = getWsdlFactoryInstance().newWSDLReader();
reader.setFeature("javax.wsdl.importDocuments", true);
return reader.readWSDL(location);
}
【讨论】: