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,但这似乎不可能,因为没有这样的分支。
谢谢,
稻谷
答案 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文件夹:
xercesImpl.jar(版本2.11) - 我现在可以看到最新的SP5
xml-apis.jar(1.4.01)
从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了解更多详细信息。