如何在Java中解析WSDL?
我需要WSDL的解析器来获取消息,portTypes,操作,绑定,服务……我希望一些解析器已经存在。 那么,任何指导?
希望此链接对您选择WSDL解析器, Parse WSDL Effectively
(查看此链接的存档: Web Archive
)非常有用。
我尝试过使用Apache Woden
, WSDL4J
和Membrane SOA
。 Apache Woden或Membrane SOA会很好。
有几个Web服务堆栈可供使用。
看看Metro堆栈。 开源并直接在Java 6中提供。
f wsdl = ''' ''' 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工具,可以为与Web服务的交互生成基于JAXB的Java工件。
你可以使用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); }