我正在重构构建自下而上web服务的客户端代码的方式。现有的构建通过在Java4.2上使用web服务的部署并对http://devserver.url?wsdl执行Axis2 AntCodegenTask来创建JBoss客户端代码。如果开发服务器关闭或wsdl过期,此方法将失败。(每当wsdl发生更改时,Crusie控制都会失败。)
我需要针对web服务类本身构建客户端代码,而不必指向web服务的部署。我使用java2wsdl从web服务类生成wsdl,然后使用相同的AntCodegenTask生成客户机类。
问题是java2wsdl创建的wsdl与JBoss在http://devserver.url?wsdl中显示的不同。其中,一些名称空间是不同的,AntCodegenTask步骤不会将这些名称空间转换为正确的包结构。
我必须得到客户端代码所期望的最终包结构。现有的AntCodegenTask使用namespacetopackages="...“但是,当我对java2wsdl生成的wsdl执行相同的AntCodegenTask时,它不会将名称空间转换为包名。
为什么当web服务部署在JBoss中时,Axis会显示与从java2wsdl生成的不同的wsdl?
有没有一种方法可以使用Axis从web服务类创建客户端代码,而不生成中间wsdl?
关于java2wsdl和wsdl2java Ant任务的文档有一点参差不齐。Axis2v1.4.1在不同的包中为AntCodegenTask和2 Java2WSDLTasks提供了Ant任务。Axis2安装包括wsdl2java和java2wsdl的二进制文件,但没有codegen二进制文件。也许AntCodegenTask和wsdl2java是一样的。
有没有人在Axis2上有类似的东西?
发布于 2012-02-24 21:00:10
在JBoss服务器上部署webservice。本地保存WSDL文件,并将其作为参数传递给Ant任务。希望生成的类是正确的,但是可能发生的情况是Axis2不喜欢使用JBoss生成的WSDL。
在这种情况下,请使用随JBoss提供wsconsume.bat,而不是AXIS ant任务。
始终使用曾经生成WSDL文件,将其与应用程序等打包在一起,因为即使是不同版本的JBoss也会生成不同的WSDL文件。
轴心总是有点糟糕,如果你可以的话(我现在不是那么明显了…)使用Apache CXF或本地JBoss实现。
https://stackoverflow.com/questions/762010
复制相似问题