6

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

我对使用 Java 的 Web 服务感到好奇的是我可以使用或不使用什么库。

当我搜索 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。有人可以给我一些建议吗?

谢谢。

祝你有美好的一天。

4

4 回答 4

3

我发现的其他一些差异:

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

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

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

于 2017-12-10T02:43:03.000 回答
2

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

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

只是为了了解它们的各种优点和缺点,你可以通过这个: 比较链接

于 2013-04-19T10:31:25.630 回答
1

通过经验,我确实发现某些 WSDL 可以由 Axis1 解析,但不能由 Axis2 解析,并且 Axis2 发送的某些消息在与 Axis1 一起使用的服务上不起作用。

来自生成的 WSDL 的数组中的细微差别,而不是手写的,以及重音字符被服务器端以不同方式解释(即适用于 CDATA,但并非没有)

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

于 2015-02-27T17:08:40.153 回答
1

某些 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,因为它是标准的并且在某些框架或技术上是必需的。

于 2018-08-09T05:56:31.387 回答