![]() |
1
0
我从来没有扩展AxIS2 WSDL2Java发射器,所以我不知道你会从中获得多少灵活性。您引用的文章建议您可以很容易地钩住生成过程。这真的取决于你必须创造什么。 最近,我不得不从数据库模式和wsdl创建样板代码,并且我使用了一种混合的方法:
Groovy非常适合快速原型和模板。例如,您可以从数据库或Wsdl收集信息,并根据模板发出代码。在这里您可以看到一些示例: http://groovy.codehaus.org/Groovy+Templates
PMD 是一个扫描Java代码并报告潜在问题的工具。它还公开了一个用于使用XPATH解析代码的API,并且有一个非常丰富的模型可以使用。你可以这样做:
就我个人而言,我发现混合方法比单一方法更有效。代码生成通常是一门艺术,而不是一门科学。 还有一件事:在我当前的项目中,我将Python用于(简单的)代码生成。它有一个非常好的模板库( jinja ),但我不建议在解析Java代码时使用它。 希望能帮上忙! |
![]() |
2
0
您已经开始编写代码生成器以实现您的目的,因此可以尝试继续此路径。codemodel库是生成代码的非常棒的库。我最近刚刚用它来生成代码,它非常好。 我建议您让这个代码模型库尝试生成您需要的代码。这是为jaxb wsdl编写的代码模型库。 |
![]() |
3
0
我们已经使用了很多WSDL2Java(但在轴1.4),我的唯一秘诀是: 1使用复杂/结构化类型作为操作的参数,例如resetWidget(widgetStruct),其中widgetStruct类包含字段widgetId、widgetName、widgetType等,而不是resetWidget(arg1、arg2、arg3..)。因此,明年当您扩展WSDL并添加更多参数时,所有遗留代码仍将编译,而不必扩展所有方法。这种方法实际上是强加给我们的,因为如果我们将所有字段作为参数传递,则另一个(旧的)WSDL工具无法正确生成响应。 2把你所有的商业逻辑放到其他类中。因此,当你重新生成骨架时,你只需放回几行代码,而不必更新大块代码。 也许这些问题在AxIS2中得到了解决。 |
![]() |
4
0
进一步的研究表明,这样做的方法是创建一个基于AxISService的多语言发射器的新的代码发射器。 不幸的是,由于不再需要创建web服务客户端,这个项目被屏蔽了。第三方软件发布了一个新版本,允许它直接使用web服务。 |