java - 如何以编程方式动态创建 WSDL 并在没有生成代码或 Java stub 的情况下解析请求?

标签 java web-services wsdl

这是我想做的:

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

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

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

长话短说:

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

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

谢谢 克里斯托夫

最佳答案

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

马克斯

关于java - 如何以编程方式动态创建 WSDL 并在没有生成代码或 Java stub 的情况下解析请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5907994/

相关文章:

java - 如何设置 Eclipse,以便它在代码块后放置额外的空间?

java - android java中两个函数之间的 sleep ?

java - Log4j2 JMX : Updating the logging level via jConsole doesn't take effect

xml - 在浏览器中读取 wsdl 文件

php - SOAP 1.2 函数 ("GetReference") 不是此服务的有效方法

java - 如何修改 Java 应用程序中的 "About"OS X 对话框面板?

java - Java 中的安全 Web 服务调用

c# - 无法在我的网络服务中使用公共(public)类(class)

php - 将 PHP 网络服务与 Android 连接

xml - 在架构内定义不同的命名空间 (WSDL)