JMS 客户端工具 - Java 8 的 HermesJMS 的替代品?

JMS client tool - any alternative to HermesJMS for Java 8?


HermesJMS 有哪些替代品可用?我需要针对 JBoss WildFly 8 进行测试,它使用 Java 8。HermesJms 似乎是为 Java 6 构建的,我找不到完整的 Java 8 端口.我尝试将 hermes.bat 设置为 this configuration option 但出现以下错误:

org.xml.sax.SAXNotRecognizedException: Feature 'http://javax.xml.XMLConstants/feature/secure-processing' is not recognized.

这似乎是由于 Xerces JAR 版本,但我担心 %HERMES_HOME%\lib\ext 下的所有其他库是否会有类似的 Java 8 兼容性问题。最好的方法是使用 HermesJMS 的 Java 8 兼容版本,而不是尝试一个一个地修复 JAR,但鉴于没有这样的分支,这似乎是不可能的。

谢谢,
稻田

这似乎与java 7 vs 8 difference in XMLP

有关

为了让它工作,我更新了 Hermes lib 文件夹:

从 MVN 存储库下载 JAR 后,我重命名以匹配 Hermes 中的现有命名。

此更改后 Hermes 启动(并且在使用 JMS 时工作正常)并且日志中没有错误。

您可以尝试 JMSToolBox(在 sourceforge 上)

为了让Java8正确工作,您需要添加以下参数:

-Dorg.xml.sax.parser=com.sun.org.apache.xerces.internal.parsers.SAXParser -Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl

Windows
打开 bin/hermes.bat 并在 start "HermesJMS" "%JAVA_HOME%\bin\javaw" 之后添加这些参数。

Linux / Mac
打开 bin/hermes.sh 并在 "$JAVACMD".

之后的最后一行添加这些参数

通过将以下 jar 文件添加到 lib 目录,它对我有用。 xercesImpl

%HERMES_HOME%\lib 目录中删除 xerces.jarxercesImpl.jar。从库中删除这些解析器后,Hermes 将默认使用 JDK8 中的 SAX 解析器,并且会更好地工作。

单击 here 了解更多详细信息。