JMS客户端工具 - HermesJMS for Java 8的替代方案吗?

时间:2015-02-24 11:48:50

标签: java jms


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

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

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

谢谢,
稻谷

5 个答案:

答案 0 :(得分:15)

this answer中,Mitch1077487建议添加java参数

java -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"

bin/hermes.sh中设置参数可使hermes正确启动。

修改应在以"$JAVACMD"开头的最后一行进行。可以在此之后立即插入参数。

答案 1 :(得分:14)

这似乎与java 7 vs 8 difference in XMLP

有关

为了使其工作,我更新了Hermes lib文件夹:

从MVN repo下载JAR后,我重命名为匹配Hermes中的现有命名。

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

答案 2 :(得分:4)

您可以尝试JMSToolBox(在sourceforge上)

答案 3 :(得分:1)

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

答案 4 :(得分:1)

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

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