0

欢乐 3.6.0,Java 10

引起:java.lang.NoClassDefFoundError: javax/activation/DataSource

你好,

尝试通过 Mirth 发送电子邮件时出现上述错误。我已经读到 Java 10 中缺少一个类,但我找不到成功解决此问题的明确说明。任何帮助将不胜感激。

4

1 回答 1

5

在 JDK 9 和 JDK 10 中,当您在类路径上编译或运行代码时,默认情况下不会解析包含 CORBA 或 Java SE 和 Java EE 之间共享的 API 的模块。这些模块已被弃用以移除。不解析这些模块的策略是在未来版本中从 Java SE 和 JDK 中删除这些 API 的第一步。不推荐使用的模块是:

  • java.corba — CORBA
  • java.transaction — Java SE 定义的 Java 事务 API 的子集,用于支持 CORBA 对象事务服务
  • java.activation — JavaBeans 激活框架
  • java.xml.bind — XML 绑定 (JAXB) 的 Java 架构
  • java.xml.ws — 用于 XML Web 服务 (JAX-WS) 的 Java API、Java 平台的 Web 服务元数据和带有 Java 附件的 SOAP (SAAJ)
  • java.xml.ws.annotation — Java SE 定义的 JSR-250 通用注释的子集,用于支持 Web 服务

如果不更改构建,则引用这些 API 中的类的现有代码将无法编译。同样,在类路径上引用这些 API 中的类的代码将失败并出现 NoDefClassFoundError 或 ClassNotFoundException,除非对应用程序的部署方式进行了更改。

请参阅JEP 320:删除 Java EE 和 CORBA 模块以获取有关迁移选项、可能的模块替换以及跟踪从 JDK 中删除 Java EE 和 CORBA 模块的进度的更多信息。

来源

你有两个选择:

  • --add-modules java.activation由于 Oracle 迁移指南建议在 JVM 启动期间使用选项。您可以将其设置mirth.properties为 Mirth Connect

或者

  • JavaBeans 激活框架 (JAF)添加到您的依赖项。在 Mirth Connect 中,您可以将此 JAR 添加到资源目录并使您的频道依赖于该资源
于 2018-09-04T14:36:07.477 回答