【问题标题】:Difference between Axis and Axis2 to develop Web ServiceAxis和Axis2开发Web Service的区别
【发布时间】:2012-11-21 23:06:57
【问题描述】:

在我的项目中,我将不得不开发一些基于 Web Service 技术的数据输入/输出接口。所以直到现在我都在研究它。

我对 Java 的 Web Service 感到好奇的是我可以使用什么库。

当我搜索 java 库时,我发现 Axis2 和 CXF 是非常常见且著名的 java w/s 库。问题是我必须使用包含轴的 RAD 7.0。

Axis 和 Axis2 之间似乎有很大的变化,不幸的是我不能使用 Axis2。

现在,我的合作伙伴提供 WSDL,我必须实现客户端 W/S。 如果我通过 Axis 或 Axis2 或 CXF 从 WSDL 创建客户端代理代码,它们是否都是相同的代码?

或者如果我必须制作 WSDL 来提供我与 Axis 的 W/S 接口,这可能是 Axis2 或 CXF 用户的问题吗?

在我的情况下,我很陌生并且害怕使用 Axis。 谁能给我一些建议??

谢谢。

祝你有美好的一天。

【问题讨论】:

    标签: axis2 axis rad


    【解决方案1】:

    不,它们每个都会生成不同的代码。 尽管它们都出于相同的目的而工作。

    我个人更喜欢 Axis2 而不是 Axis。

    只是为了了解它们的各种优缺点,您可以通过以下步骤: comparison link

    【讨论】:

      【解决方案2】:

      根据经验,我确实发现某些 WSDL 可以由 Axis1 解析,但不能由 Axis2 解析,并且 Axis2 发送的某些消息不适用于与 Axis1 一起使用的服务。

      来自生成的 WSDL 的数组中的细微差别,而不是手写的,以及服务器端对重音字符的不同解释(即,可以使用 CDATA,但不能不使用)

      就个人而言,我使用 wsimport 从 JDK 生成的任何东西,而不是其他工具,但某些框架(例如 Curam)需要axis/axis2

      【讨论】:

      • 是的,@Archimedes 是对的。让您使用正确版本的 Axis。否则你卡在那里。这是一场灾难。
      【解决方案3】:

      我发现的其他一些差异:

      • 对于 Axis 2 开发,Java 版本 5 和更高版本是必需的。对于轴 1 java 不需要 v5 或更高版本。它适用于 Java v4。

      • Axis 是旧 JAX-RPC 1.1 的 RI,Axis 2 是新 JAX-WS 2.x 的实现

      • Axis 不支持 Annotations ,Axis 2 支持注解,因此支持使用注解开发 Web 服务的新方法,例如 @Webservice / @Webmethod 注解。

      【讨论】:

        【解决方案4】:

        某些 WSDL 可以被 Axis1 解析,但不能被 Axis2 解析。 Axis1 一直支持到 Java 1.4 版本,之后你会得到与 enum 关键字相关的异常。

        使用 -source 5 或更高版本以使用“枚举”作为关键字。

        因为 Axis 正在生成带有 enum 关键字的 java 类。

        您可以覆盖这些类和包名称(就像在 Axis2 中将枚举包变为常量一样)并使您自己的托管版本的 Axis 与 Java 1.5 或更高版本兼容。 我创建了自己的托管版本的轴来支持 java 1.5 或更高版本上的旧版 wsdl,它甚至可以使用 java 10。

        最好使用axis或axis2,因为它是标准的并且在某些框架或技术上是必需的。

        【讨论】:

          猜你喜欢
          • 2013-02-02
          • 1970-01-01
          • 2011-03-17
          • 2012-07-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多