简短的回答:
您可以使用 Apache Geronimo 项目中的相应 JAR 安全地替换它们。它们可以在这里找到:
http://repo1.maven.org/maven2/org/apache/geronimo/specs/
长答案:
Axis2 在两个地方使用了 Activation 和 JavaMail:
- 对 SwA 和 MTOM 的支持。这里主要是
DataHandler
使用的类和相关类。
- 作为邮件传输中 POP3/IMAP/SMTP 协议的实现。
SwA/MTOM 支持实际上是由 Apache Axiom 项目提供的,该项目本身使用 Geronimo JAR。Axiom 具有广泛的单元测试套件,并且没有与 Geronimo JAR 的使用相关的已知问题。因此,将它们与 Axis2 一起使用也是安全的(对于 SwA/MTOM 支持)。
Axis2 覆盖 Axiom 项目的依赖项以使用 Sun/Oracle JAR 而不是 Geronimo JAR 有几个原因:
- Geronimo JAR 的早期版本存在影响 SwA/MTOM 的错误,但情况已不再如此(见上文)。
- 由于 POP3/IMAP/SMTP 代码比这些代码复杂得多
DataHandler
,因此如果使用 Axis2 邮件传输,Geronimo JAR 仍可能会导致问题。
- 大多数第三方项目使用 Sun/Oracle JAR。Axis2 选择使用这些 JAR 以避免在将 Axis2 与其他项目组合时使用两组 JAR。
- ASF 不考虑(实际上,不再考虑)Sun/Oracle JAR 的许可证与 ASL 不兼容。