如何在WildFly 13中使用Hibernate 4

时间:2018-07-13 03:29:59

标签: hibernate wildfly infinispan wildfly-13

是否可以在hibernate-core-4.x上使用Wildfly 13运行应用程序?

我敢肯定,WildFly13不会不支持休眠4,但是无论如何我还是有要求。造成这种情况的部分原因是,应用程序使用的某些类在休眠5中不再存在(例如,Mappings),而要更改它们将花费巨大的精力。

我的偏好是仅更新应用程序,但是我需要显示“尽职调查”(或其他内容)以证明所做的努力是正确的。

我们看到的异常与使休眠4与infinispan 9完美配合有关,或者也可能将infinispan降级为版本“ 6.x”。

我所知道的所有相关经验都是关于Tomcat的,因此我需要一些帮助,要么使其开始工作,要么能够显示官方文档或声明不支持休眠4的声明。

Stacktrace

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);
}

1 个答案:

答案 0 :(得分:0)

我在项目中使用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

希望对您有帮助。