如何以编程方式动态创建WSDL并解析Java中没有生成代码或存根的请求?

时间:2011-05-06 07:13:26

标签: java web-services wsdl

以下是我想做的事情:

我有一个Java Web应用程序,我可以在其中定义执行代码的服务(例如JRuby),它还指定输入参数和输出参数。 所有这些信息都存储在数据库中。

今天,根据该信息,我可以呈现一个网页,显示输入的表单字段。如果用户提交表单,我解析输入请求参数并将它们传递给实际的JRuby代码并将输出返回到响应页面。

我现在要做的是做同样的事情,但不向用户显示HTML网站,而是显示WSDL。 假设这个WSDL的使用者在他的末端创建了一个SOAP客户端并调用我的webservice,包括所需的输入参数,我想有一些java代码可以解析收到的SOAP请求,根据动态生成的WSDL文件验证它,提取输入请求参数,将它们传递给JRuby代码并将结果作为另一个SOAP请求返回。

长话短说:

哪个基于Java的框架可以帮助我? 我无法创建java类来生成WSDL或使用任何注释,因为输入和输出的规范是动态的。

我认为我可以手动生成WSDL(连接字符串或某些例如freemarker模板),然后手动解析xml,但我想如果有更好的方法以编程方式执行此操作。

由于 克里斯托弗

1 个答案:

答案 0 :(得分:2)

您可以尝试查看wsdl4j。我有一个类似的问题,我在寻找解决方案时偶然发现了wsdl4j,我还没有完全测试它。有一个pdf文档here解释了如何使用它(第10章“以编程方式创建定义”)希望它可以提供帮助。

Maxx的