如何将Hibernate 4与WildFly 13一起使用
是否可以在如何将Hibernate 4与WildFly 13一起使用,hibernate,wildfly,infinispan,wildfly-13,Hibernate,Wildfly,Infinispan,Wildfly 13,是否可以在Wildfly 13上使用hibernate-core-4.x运行应用程序 我很确定hibernate 4在WildFly13上不受支持,但无论如何我都有这样的要求。部分原因是应用程序正在使用hibernate 5中不再存在的某些类(例如,映射),要更改它们需要付出巨大的努力 我的偏好是只更新应用程序,但我需要显示“尽职调查”(或其他)来证明这一努力的合理性 我们看到的例外情况与让Hibernate4更好地使用infinispan 9有关,或者也可能将infinispan降级到版本“6
Wildfly 13
上使用hibernate-core-4.x
运行应用程序
我很确定hibernate 4在WildFly13上不受支持,但无论如何我都有这样的要求。部分原因是应用程序正在使用hibernate 5中不再存在的某些类(例如,映射
),要更改它们需要付出巨大的努力
我的偏好是只更新应用程序,但我需要显示“尽职调查”(或其他)来证明这一努力的合理性
我们看到的例外情况与让Hibernate4更好地使用infinispan 9有关,或者也可能将infinispan降级到版本“6.x”
我所知道的所有相关经验都与Tomcat有关,因此我需要一些帮助,要么让它工作起来,要么能够显示官方文档或声明说hibernate 4不受支持
Stacktrace
2018-07-11 17:30:17034 org.infinispan.configuration.ParserRegistry.ParserRegistry.parseElement(ParserRegistry.java:174)处出现错误(Thread-1(ActiveMQ客户端全局线程))[stderr]
2018-07-11 17:30:17050 org.infinispan.configuration.parser.ParserRegistry.parse(ParserRegistry.java:150)处出现错误(线程1(ActiveMQ客户端全局线程))[stderr]
2018-07-11 17:30:17050 org.infinispan.configuration.parser.ParserRegistry.parse(ParserRegistry.java:137)处出现错误(线程1(ActiveMQ客户端全局线程))[stderr]
2018-07-11 17:30:17050 org.infinispan.configuration.parser.ParserRegistry.parse(ParserRegistry.java:123)处出现错误(线程1(ActiveMQ客户端全局线程))[stderr]
2018-07-11 17:30:17050 org.hibernate.cache.infinispan.InfinispanRegionFactory.createCacheManager(InfinispanRegionFactory.java:415)上的错误(线程1(ActiveMQ客户端全局线程))[stderr]
2018-07-11 17:30:17050 org.hibernate.cache.infinispan.InfinispanRegionFactory.start(InfinispanRegionFactory.java:323)上的错误(线程1(ActiveMQ客户端全局线程))[stderr]
解析器注册表中引发异常的代码:
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);
}
我在项目中使用jboss-deployment-structure.xml解决了这个问题,具体如下:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="org.hibernate" slot="4.3"/>
</dependencies>
</deployment>
</jboss-deployment-structure>
还有插槽4.1
我希望它能有所帮助。你不能让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 Yes。WildFly 13包含一个我需要的bug修复,这在任何其他版本的WildFly/jBoss中都没有。那么,是时候升级到Hibernate 5.1/5.3了?