从Axis 2使用WSDL2Java时,如何在基本包下生成所有类?

时间:2018-11-13 15:52:47

标签: java axis2 wsdl2java

我试图强制WSDL2Java(org.apache.axis2.wsdl.WSDL2Java)在给定的基本包下生成所有类,例如com.mycompany.thewebservice。*

根据the documentation -p选项应该可以解决问题:

-p --package目标软件包名称。如果省略,将使用默认程序包(使用WSDL的目标名称空间形成)。

但是不幸的是,当我们使用-p选项时,在给定的包下仅生成3个主要类(XService.java,XCallbackHandler.java和XServiceStub.java)。还会生成许多其他软件包,例如:

  • com.theservice。*
  • org.w3.www._2004._60.xmlmime
  • org.xmlsoap.schemas.soap.encoding

这对我们来说是一团糟,因为我们集成了许多Web服务,并且希望将服务的所有类都放在一个公共的基本文件夹下。

我们过去使用的是Axis 1,它的WSDL2Java(org.apache.axis.wsdl.WSDL2Java)有一个参数--package,它像一个超级按钮一样工作。在这种情况下,所有类都在我指定的包下巧妙地生成。

是否有一种方法可以强制Axis 2 WSDL2Java在给定的程序包下生成所有类?我知道-ns2p --namespace2package参数,但是我不想为我们集成的每个服务都逐一列出URL。

1 个答案:

答案 0 :(得分:0)

我正在使用axis2-eclipse-codegen-plugin-1.7.9,并且-p选项也不会将所有生成的类都放在一个包中。

我已经找到解决该问题的方法。

1)只需将下载的axis2-eclipse-codegen-plugin-1.7.9.jar文件拖放到名为“ droppings”的Eclipse / STS文件夹下
2)重新启动基于Eclipse的IDE
3)从STS菜单转到文件->新建->其他...,选择Axis2代码生成器(在Axis2向导下)->单击下一步->选择“从WSDl文件生成Java源代码”- ->下一步->指向您的WSDL文件位置->下一步->为Codegen选项选择自定义,填充其他字段->单击高级选项,然后在其中
4)取消选中复选框,如下面的屏幕截图所示,它通知Axis2根据Axis2 CodegenToolReference生成所有绑定类作为内部类:

  

unpackClasses解压缩生成的类。这迫使   数据绑定类将单独生成,否则将生成   已作为内部类生成。

Axis2 Codegen Wizard

相关问题