我需要WSDL解析器来获取消息,portTypes,操作,绑定,服务,...... 我希望一些解析器已经存在。那么,任何指导?
答案 0 :(得分:3)
希望此链接对您选择WSDL解析器Parse WSDL Effectively
非常有用(查看此链接的存档:Web Archive
)。
我尝试过使用Apache Woden
,WSDL4J
和Membrane SOA
。 Apache Woden或Membrane SOA就可以了。
答案 1 :(得分:0)
可以使用多个Web服务堆栈。
看看Metro堆栈。开源并直接在Java 6中提供。
答案 2 :(得分:0)
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:)
答案 3 :(得分:0)
在http://docs.oracle.com/javase/6/docs/technotes/tools/share/wsimport.html查看wsimport
工具文档。它是一个标准的JDK工具,可以为与Web服务的交互生成基于JAXB的Java工件。
答案 4 :(得分:-1)
使用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);
}