我想开发一个应用程序来测试 Web 服务,它将使用提供的 WSDL 中的参数自动生成一个 JSF 表单。
WSDL URL 由用户提供,在解析之前我不知道操作的名称。我希望应用程序通过解析的操作及其参数,并自动生成适当的 Java Bean,我将使用它来生成 JSF 表单。
我已经测试过 CXF 和 JAX-WS,但我认为他们需要在生成 Java bean 之前知道操作名称。如何为任何 WSDL 透明地生成 Java Bean?手动运行wsdl2java
不是解决方案。
CXF 确实有一个“DynamicClient”(参见:http ://cxf.apache.org/javadoc/latest-2.6.x/org/apache/cxf/jaxws/endpoint/dynamic/JaxWsDynamicClientFactory.html )可用于此. 它解析 wsdl,生成 JAXB 对象并编译它们,并返回一个客户端,该客户端可用于获取与它们关联的操作和类型等。
如果您正在使用 Maven(并且您应该使用),您可以使用 CXF 代码生成插件从 WSDL 生成类。我的博客上有一个例子;
http://qwerky-qwerky.blogspot.co.uk/2011/12/programming-without-programming-1.html