【问题标题】:How to generate java classes from WSDL file如何从 WSDL 文件生成 java 类
【发布时间】:2011-10-18 17:01:40
【问题描述】:

我正在开发一个 android 应用程序。我需要使用网络服务。我有一个 wsdl 文件,但我想将其转换为 java,以便我可以在我的 Java 程序中使用它的功能。 有什么方法可以将 wsdl 文件转换成 Java 吗?

【问题讨论】:

  • 假设你有 jdk 1.6 或更高版本在你想要输出生成的类的位置进入 cmd 并在那个位置写:wsimport -keep -verbose http://myWsdlURL?wsdl

标签: java android web-services wsdl


【解决方案1】:

您可以使用 Oscar 之前建议的 eclipse 插件。或者,如果您是命令行人员,则可以从命令提示符使用 Apache Axis WSDL2Java 工具。你可以在这里找到更多细节http://axis.apache.org/axis/java/reference.html#WSDL2JavaReference

【讨论】:

    【解决方案2】:

    假设您已安装 JAXB 转到以下目录C:\Program Files\jaxb\bin 在此处打开命令窗口

    > xjc -wsdl http://localhost/mywsdl/MyDWsdl.wsdl C:\Users\myname\Desktop

    C:\Users\myname\Desktop 是输出文件夹,您可以将其更改为您的偏好

    http://localhost/mywsdl/MyDWsdl.wsdl 是指向 WSDL 的链接

    【讨论】:

      【解决方案3】:

      jdk 6 带有 wsimport,您可以使用它从 WSDL 创建 Java 类。 它还创建了一个服务类。

      http://docs.oracle.com/javase/6/docs/technotes/tools/share/wsimport.html

      【讨论】:

        【解决方案4】:

        我有相当复杂的 WCF Web 服务,我尝试了几种不同的工具,但在大多数情况下我无法连接到我的 Web 服务。最后我用了这个:

        http://easywsdl.com/

        这只是一种工具,它可以生成无需任何更改即可工作的类!

        【讨论】:

          【解决方案5】:

          我创建了一个很棒的工具来自动解析和连接到网络服务

          http://www.wsdl2code.com

          http://www.wsdl2code.com/pages/Example.aspx

           SampleService srv1 = new SampleService();
               req = new Request();                     
               req.companyId = "1";
               req.userName = "userName";                                     
               req.password = "pas";
               Response response =    srv1.ServiceSample(req);
          

          【讨论】:

            【解决方案6】:

            对我来说,从 wsdl 生成 java 类,最好的工具是“cxf wsdl2java”。它非常简单易用。我在axis2中发现了一些数据类型的复杂性。 但不幸的是你不能在你的android应用程序中使用那些客户端存根代码,因为android environment doesn't allow the "java/javax" package name在编译时除非你重命名包名。

            在 android.jar 中,所有用于 Web 服务消费的 javax.* 源都不可用。为了解决这些问题,我为安卓开发了这个WS Client Generation Tool

            在后台,它使用“cxf wsdl2java”为您生成适用于 android 平台的 java 客户端存根,并且我已经编写了一些源以更智能的方式使用 Web 服务。

            只需提供 wsdl 文件位置,它就会为您提供源代码和一些库。您只需将源代码和库放入您的项目中。你可以像我们在我们的企业项目中那样以某种“方法调用方式”来调用它,你不需要知道命名空间/soap 操作等。例如,你有一个登录服务,你需要做什么是:

            LoginService service = new LoginService ( );
            Login login = service.getLoginPort ( );
            LoginServiceResponse resp = login.login ( "someUser", "somePass" );
            

            而且它完全开放和免费。

            【讨论】:

            • 你能告诉我,在哪个jar文件中,我可以看到这个服务支持的方法,拜托。谢谢:)
            【解决方案7】:

            您可以使用 WSDL2JAVA Codegen (或) 您可以简单地使用 Eclipse IDE 中提供的“Web Service/WebServiceClient”向导。 打开IDE并按'Ctrl+N',选择'Web Service/WebServiceClient',指定wsdl URL,输出文件夹并选择finish。

            它会创建您需要的完整源文件。

            【讨论】:

            【解决方案8】:

            是的,您可以使用:

            Wsdl2java eclipse plugin

            有了这个,您只需要提供 wsdl,就会自动为您生成 Java 类的客户端。

            【讨论】:

            • Android 会支持这些 java 类吗??
            • @Farhan 是的,不会有任何区别。
            猜你喜欢
            • 1970-01-01
            • 2014-02-01
            • 1970-01-01
            • 2012-07-31
            • 1970-01-01
            • 2018-05-15
            • 2019-08-27
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多