【发布时间】:2018-12-21 08:52:37
【问题描述】:
是否可以在Wildfly 13 上使用hibernate-core-4.x 运行应用程序?
我很确定在 WildFly13 上不支持 hibernate 4,但是无论如何我都需要这样做。造成这种情况的部分原因是应用程序正在使用一些在 hibernate 5 中不再存在的类(例如Mappings),更改它们将是巨大的努力。
我的偏好是只更新应用程序,但我需要表现出“尽职调查”(或其他)来证明努力的合理性。
我们看到的例外情况与让 hibernate 4 与 infinispan 9 配合得很好有关,或者也可能将 infinispan 降级到版本“6.x”。
我所知道的所有相关经验都与 Tomcat 相关,因此我需要一些帮助,要么让它工作,要么能够显示官方文档或声明说不支持休眠 4。
堆栈跟踪
2018-07-11 17:30:17,034 错误 (Thread-1 (ActiveMQ-client-global-threads)) [stderr] at org.infinispan.configuration.parsing.ParserRegistry.parseElement(ParserRegistry.java:174)
2018-07-11 17:30:17,050 错误 (Thread-1 (ActiveMQ-client-global-threads)) [stderr] at org.infinispan.configuration.parsing.ParserRegistry.parse(ParserRegistry.java:150)
2018-07-11 17:30:17,050 错误 (Thread-1 (ActiveMQ-client-global-threads)) [stderr] at org.infinispan.configuration.parsing.ParserRegistry.parse(ParserRegistry.java:137)
2018-07-11 17:30:17,050 错误 (Thread-1 (ActiveMQ-client-global-threads)) [stderr] at org.infinispan.configuration.parsing.ParserRegistry.parse(ParserRegistry.java:123)
2018-07-11 17:30:17,050 错误 (Thread-1 (ActiveMQ-client-global-threads)) [stderr] at org.hibernate.cache.infinispan.InfinispanRegionFactory.createCacheManager(InfinispanRegionFactory.java:415)
2018-07-11 17:30:17,050 错误 (Thread-1 (ActiveMQ-client-global-threads)) [stderr] at org.hibernate.cache.infinispan.InfinispanRegionFactory.start(InfinispanRegionFactory.java:323)
解析器注册表中抛出异常的代码:
public void parseElement(XMLExtendedStreamReader reader, ConfigurationBuilderHolder holder) throws XMLStreamException {
QName name = reader.getName();
ParserRegistry.NamespaceParserPair parser = (ParserRegistry.NamespaceParserPair)this.parserMappings.get(name);
if (parser == null)
{
String uri = name.getNamespaceURI();
int lastColon = uri.lastIndexOf(':');
String baseUri = uri.substring(0, lastColon + 1) + "*";
parser = (ParserRegistry.NamespaceParserPair)this.parserMappings.get(new QName(baseUri, name.getLocalPart()));
if ((parser == null) || (!isSupportedNamespaceVersion(parser.namespace, uri.substring(lastColon + 1)))) throw log.unsupportedConfiguration(name.getLocalPart(), name.getNamespaceURI());
}
Schema oldSchema = reader.getSchema();
reader.setSchema(Schema.fromNamespaceURI(name.getNamespaceURI()));
parser.parser.readElement(reader, holder);
reader.setSchema(oldSchema);
}
【问题讨论】:
-
你不能让 Hibernate 4 和 Infinispan 9 一起工作。 Infinispan 9.3 仅支持 Hibernate 5.1 和 5.3。
-
@TristanTarrant 我有点怀疑。是否可以使用 gradle|maven 的 WildFly 配置插件将 infinispan 降级到兼容版本?我有点了解如何配置“功能”,但我仍然不清楚降级如何或是否会与默认版本冲突。
-
必须使用 Wildfly 13 吗?例如,Wildfly 10 使用 Hibernate 4.x。
-
@stdundbar 是的。 WildFly 13 包含一个我需要的错误修复,这在任何其他版本的 WildFly/jBoss 中都没有。
-
是时候升级到 Hibernate 5.1/5.3 了吗?
标签: hibernate wildfly infinispan wildfly-13