如何在Java中解析WSDL?

我需要WSDL的解析器来获取消息,portTypes,操作,绑定,服务……我希望一些解析器已经存在。 那么,任何指导?

希望此链接对您选择WSDL解析器, Parse WSDL Effectively (查看此链接的存档: Web Archive )非常有用。

我尝试过使用Apache WodenWSDL4JMembrane 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); }