Grails 中的 Web 服务脚手架
我需要实现一个 Web 应用程序,但我需要使用不同的 SOAP Web 服务作为后端,而不是使用关系数据库。 应用程序的一个重要部分仅调用 Web 服务并显示结果。 由于 Web 服务以操作的形式明确定义:在参数和返回类型中,在我看来,可以轻松构建基本 GUI,就像基于域实体的脚手架一样。
例如,在 SearchProducts Web 服务操作中,我需要输入搜索参数作为输入,以便可以构建搜索页面。 操作将返回产品列表,因此我需要一个页面来在某种表格中显示此列表。
grails 中是否已经有一些库可以让您实现这一目标。 如果没有,您将如何创建一个?
I need to implement a web app, but instead of using relational database I need to use different SOAP Web Services as a back-end. An important part of application only calls web services and displays the result. Since Web Services are clearly defined in form of Operation: In parameters and Return Type it seems to me that basic GUI could be easily constructed just like in the case of scaffolding based on Domain Entities.
For example in case of SearchProducts web service operation I need to enter search parameters as input, so the search page can be constructed. Operation will return a list of products, so I need a page that will display this list in some kind of table.
Is there already some library in grails that let you achieve this. If not, how would you go about creating one?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
最简单的方法可能是在 WSDL 文件上使用 wsimport 来生成客户端存根。 然后,您可以从 Groovy 调用存根中的方法,就像从 Java 调用它们一样。
例如,考虑 Microsoft TerraServer 的 WSDL 文件,位于 http://terraservice.net/TerraService.asmx ?wsdl 。 然后运行类似的命令
,将所有已编译的存根放入 src 目录中。 然后您可以编写 Groovy 代码,例如
如果您想访问大量 Web 服务,请为所有服务生成存根。 或者您可以使用动态代理。
不过,底线是让 Java 做它已经擅长的事情,并使用 Groovy 让您的生活更轻松。
Probably the easiest approach is to use wsimport on the WSDL files to generate the client-side stubs. Then you can call methods in the stubs from Groovy just as you would have called them from Java.
For example, consider the WSDL file for Microsoft's TerraServer, located at http://terraservice.net/TerraService.asmx?wsdl . Then you run something like
which puts all the compiled stubs in the src directory. Then you can write Groovy code like
If you want to access a lot of web services, generate the stubs for all of them. Or you can use dynamic proxies instead.
The bottom line, though, is to let Java do what it already does well, and use Groovy where it makes your life easier.
您应该能够使用 XFire 或 CXF 插件。 对于自动脚手架,请修改脚手架模板中的 Controller.groovy 模板,以便它自动生成您需要的方法。
You should be able to use XFire or CXF Plugins. For automatic scaffolding, modify your Controller.groovy template in scaffolding templates so it auto-generates methods you need.