Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以编程方式动态创建WSDL,并在Java中解析请求,而无需生成代码或存根?_Java_Web Services_Wsdl - Fatal编程技术网

如何以编程方式动态创建WSDL,并在Java中解析请求,而无需生成代码或存根?

如何以编程方式动态创建WSDL,并在Java中解析请求,而无需生成代码或存根?,java,web-services,wsdl,Java,Web Services,Wsdl,以下是我想做的: 我有一个Java web应用程序,我可以在其中定义一个执行代码的服务(例如JRuby),它还指定输入参数和输出参数。 所有这些信息都存储在数据库中 今天,根据这些信息,我可以呈现一个网页,显示输入的表单字段。如果用户提交表单,我将解析输入请求参数并将其传递给实际的JRuby代码,并将输出返回到响应页面 我现在想做的是做完全相同的事情,但不向用户显示HTML网站,而是显示WSDL。 假设此WSDL的使用者在其端创建一个SOAP客户端并调用我的Web服务(包括所需的输入参数),我希

以下是我想做的:

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

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

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

长话短说:

哪种基于Java的框架可以帮助我做到这一点? 我不能创建java类来生成WSDL或使用任何注释,因为输入和输出的规范是来自数据库的动态规范

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

谢谢
克里斯托夫

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


Maxx

您确定您的WSDL需要是动态的吗?让底层XSD足够灵活以应对不同的参数难道还不够吗?@artbristol-Hmm我不知道。也许是的。这看起来怎么样?我将有一个0..n输入参数(例如string类型)和0..n输出参数(比如string类型)的操作。所有这些都必须传递给某个方法(url)。有阅读链接吗?谢谢。我会在WSDL操作中坚持使用一个输入和输出参数,但是将参数设置为可以包含字符串列表的XML类型。我希望对于WSDL使用者来说,它感觉像是一个普通的WSDL,具有输入参数和输出参数的操作。但是感谢你的想法,这有助于我在这方面进行更多的挖掘。我想我找到了一个很好的库,它完全满足了我的需要,也可以用于oposite,它通过编程方式创建SOAP请求。这是一份很棒的文件。它包含一个名为“10.以编程方式创建定义”的部分,听起来好像这就是我所需要的。我现在会用这些信息更深入地挖掘。