代码之家  ›  专栏  ›  技术社区  ›  Dean Schulze

Axis 2 java2wsdl创建的wsdl与JBoss中的不同?wsdl URL

  •  1
  • Dean Schulze  · 技术社区  · 15 年前

    我正在重构自下而上web服务的客户端代码的构建方式。现有版本通过在JBoss 4.2上部署web服务并对其执行Axis 2 AntCodegenTask来创建Java客户机代码 http://devserver.url?wsdl 。如果开发服务器关闭或wsdl过期,此方法将失败。(只要wsdl发生更改,Crusie控制就会失败。)

    我需要根据web服务类本身构建客户机代码,而不必指向web服务的部署。我使用java2wsdl从web服务类生成wsdl,然后使用相同的AntCodegenTask生成客户机类。

    问题在于,java2wsdl创建的wsdl与JBoss中显示的不同 http://devserver.url?wsdl 。除此之外,有些名称空间是不同的,AntCodegenTask步骤不会将这些名称空间转换为正确的包结构。

    我必须让最终的包结构符合客户机代码的期望。现有的AntCodegenTask使用namespacetopackages=“…”但当我对java2wsdl生成的wsdl执行相同的AntCodegenTask时,它不会将名称空间转换为包名。

    为什么Axis在JBoss中部署web服务时会显示不同于从java2wsdl生成的wsdl?

    有没有一种方法可以使用Axis从web服务类创建客户机代码,而不生成中间wsdl?

    java2wsdl和wsdl2java Ant任务的文档有点零散。Axis 2 v 1.4.1在不同的包中为AntCodegenTask和2个Java2WSDLTasks提供了Ant任务。Axis 2安装包括wsdl2java和java2wsdl的二进制文件,但没有codegen二进制文件。也许AntCodegenTask与wsdl2java相同。

    有人有类似的东西可以用在Axis 2上吗?

    1 回复  |  直到 15 年前
        1
  •  0
  •   Piotr Kochański    12 年前

    在JBoss服务器上部署webservice。本地保存WSDL文件,并将其作为参数传递给Ant任务。希望生成的类是正确的,但是Axis 2可能不希望使用JBoss生成的WSDL。

    在这种情况下,使用wsconsume。bat提供了JBoss而不是AXIS ant任务。

    始终使用生成的WSDL文件,将其与应用程序打包,等等,因为即使不同版本的JBoss也会生成不同的WSDL文件。

    Axis总是有点烂,如果可以的话(我现在不那么明显了…)使用Apache CXF或本机JBoss实现。

    推荐文章