Mirth/Java10 - 缺少发送电子邮件的类



Mirth 3.6.0, Java 10

原因:java.lang.NoClassDefFoundError: javax/activation/DataSource

你好

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

在 JDK 9 和 JDK 10 中,包含 CORBA 或 API 的模块 在以下情况下,默认情况下不会解析 Java SE 和 Java EE 之间的共享 在类路径上编译或运行代码。这些模块是 已弃用以删除。不解析这些模块的策略是 从 Java SE 和 JDK 中删除这些 API 的第一步 将来发布。已弃用的模块包括:

  • java.corba — CORBA
  • java.transaction — Java 的子集 由 Java SE 定义的事务 API,用于支持 CORBA 对象事务服务
  • java.activation — JavaBeans Activation Framework
  • java.xml.bind — Java Architecture for XML Binding (JAXB(
  • java.xml.ws — Java API for XML Web Services (
  • JAX-WS(、Web Services Metadata for the Java Platform 和 SOAP with Attachments for Java (SAAJ(
  • java.xml.ws.annotation — Java SE 定义的 JSR-250 通用注解的子集,用于支持 Web 服务

引用这些 API 中的类的现有代码不会 在不更改内部版本的情况下进行编译。同样,类上的代码 引用这些 API 中的类的路径将失败,并显示 NoDefClassFoundError 或 ClassNotFoundException,除非进行了更改 在应用程序的部署方式上。

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

您有两种选择:

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

  • 将 JavaBeans 激活框架 (JAF( 添加到依赖项中。在 Mirth Connect 中,您可以将此 JAR 添加到资源目录中,并使您的频道依赖于该资源

相关内容

最新更新