【问题标题】:Hibernate Search, Infinispan, jgroups, Wildfly cluster integration configurationHibernate Search、Infinispan、jgroups、Wildfly集群集成配置
【发布时间】:2018-05-25 03:29:33
【问题描述】:

我正在尝试在 Wildfly 上配置 jgroups、infinispan、hibernate 搜索集群。我在 Netbeans 中有两个独立的档案,一个战争和一个 ejb jar。所以我将ejb作为war中的依赖项,然后只将war推送到wildfly 10.0.0中。问题是 jndi 方法没有起作用,幸运的是我看到了这个问题。现在我正在尝试用xml配置文件来配置它,但我仍然总是陷入com.ctc.wstx.exc.WstxIOException: Stream closed。我试图将 xml 配置文件放在 src、WEB-INF、META-INF 中,但我遇到了同样的异常。

我已经检查了这些(Configuring Infinispan CacheProvider in Seam 2.3"experimental" status of JGroups Master/Slave backend for hibernate search and infinispanInfinispanDirectoryProvider with Wildfly 10.1)但没有结果。

这就是我在 persistence.xml 中声明属性的方式

property name="hibernate.search.infinispan.configuration_resourcename" value="infinispan-config.xml"

[Server:server-one] 原因: org.infinispan.commons.CacheConfigurationException: com.ctc.wstx.exc.WstxIOException:流已关闭 [Server:server-one]
在 org.infinispan.configuration.parsing.ParserRegistry.parse(ParserRegistry.java:110) [服务器:服务器一]在 org.infinispan.hibernate.search.impl.InfinispanConfigurationParser.parseFile(InfinispanConfigurationParser.java:57) [服务器:服务器一]在 org.infinispan.hibernate.search.impl.InfinispanConfigurationParser.parseFile(InfinispanConfigurationParser.java:42) [服务器:服务器一]在 org.infinispan.hibernate.search.impl.DefaultCacheManagerService.start(DefaultCacheManagerService.java:79) [服务器:服务器一]在 org.hibernate.search.engine.service.impl.StandardServiceManager$ServiceWrapper.startService(StandardServiceManager.java:303) [服务器:服务器一]在 org.hibernate.search.engine.service.impl.StandardServiceManager$ServiceWrapper.startVirtual(StandardServiceManager.java:268) [服务器:服务器一]在 org.hibernate.search.engine.service.impl.StandardServiceManager.createAndCacheWrapper(StandardServiceManager.java:205) [服务器:服务器一]在 org.hibernate.search.engine.service.impl.StandardServiceManager.requestService(StandardServiceManager.java:87) [服务器:服务器一]在 org.infinispan.hibernate.search.spi.InfinispanDirectoryProvider.initialize(InfinispanDirectoryProvider.java:66) [服务器:服务器一]在 org.hibernate.search.store.spi.BaseDirectoryProviderService.initialize(BaseDirectoryProviderService.java:64) [Server:server-one] ... 28 更多 [Server:server-one] 原因: com.ctc.wstx.exc.WstxIOException:流已关闭 [Server:server-one]
在 com.ctc.wstx.stax.WstxInputFactory.doCreateSR(WstxInputFactory.java:550) [服务器:服务器一]在 com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:605) [服务器:服务器一]在 com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:618) [服务器:服务器一]在 com.ctc.wstx.stax.WstxInputFactory.createXMLStreamReader(WstxInputFactory.java:324) [服务器:服务器一]在 __redirected.__XMLInputFactory.createXMLStreamReader(__XMLInputFactory.java:134) [服务器:服务器一]在 org.infinispan.configuration.parsing.ParserRegistry.parse(ParserRegistry.java:116) [服务器:服务器一]在 org.infinispan.configuration.parsing.ParserRegistry.parse(ParserRegistry.java:105) [Server:server-one] ... 37 更多 [Server:server-one] 原因: java.io.IOException:流关闭 [Server:server-one] 于 java.io.BufferedInputStream.getInIfOpen(未知来源) [Server:server-one] at java.io.BufferedInputStream.fill(Unknown 来源)[服务器:服务器一]在 java.io.BufferedInputStream.read1(Unknown Source) [Server:server-one] 在 java.io.BufferedInputStream.read(未知来源) [服务器:服务器一]在 com.ctc.wstx.io.StreamBootstrapper.ensureLoaded(StreamBootstrapper.java:478) [服务器:服务器一]在 com.ctc.wstx.io.StreamBootstrapper.resolveStreamEncoding(StreamBootstrapper.java:302) [服务器:服务器一]在 com.ctc.wstx.io.StreamBootstrapper.bootstrapInput(StreamBootstrapper.java:166) [服务器:服务器一]在 com.ctc.wstx.stax.WstxInputFactory.doCreateSR(WstxInputFactory.java:545) [服务器:server-one] ... 43 更多

有什么新想法吗?

Infinispan 8.2.4,休眠搜索 5.6.4,Wildfly 10.0.0,休眠 OGM 5.1.0

【问题讨论】:

    标签: java wildfly hibernate-search infinispan jgroups


    【解决方案1】:

    此类错误是由于捆绑了不兼容的版本引起的;因为您提到Hibernate Search 5.6.4 这不是WildFly 10 中包含的版本,所以我猜您在应用程序中捆绑了该库的副本。

    您可以更新库,但这需要自定义模块的专家组装;最好采用现有的模块集之一,因为它们将由各自的发布团队(Hibernate/WildFly/Infinispan)进行测试。

    最简单的方法是使用 WildFly 中包含的 Hibernate Search 版本,如 Hibernate Search documentation 中所述。

    对于 WildFly 10,它是 Hibernate Search 版本 5.5.1,您可以在 the tagged sources 中看到。

    接下来获取 Infinispan 版本,该版本旨在与该特定版本的应用服务器兼容;您需要来自Infinispan downloads 的“WildFly/EAP 模块”。

    或者使用section 3.10.2 中所述的任何 Hibernate Search 版本包含的模块,但这些模块不包括 Infinispan,您必须从 Infinispan 获取兼容版本。

    【讨论】:

    • 非常感谢您的回答。好吧,实际上是的,弄乱了wildfly内置以外的模块是很粗糙的。我也在使用 OGM,并且在 hibernate 的兼容性矩阵中提到了 hibernate search 5.6。这就是我坚持使用 Search 5.6 的原因(错了?)。我的问题已解决。在 netbeans 中,配置必须完全放在资源文件夹中,而不是 src,而不是 META-INF(至少要从 persistence.xml 访问它)。对于可能有类似问题的人,在修复目录后,请注意模式声明 () 的格式正确。
    • 感谢您的反馈。我们现在正在努力用“功能包”替换模块 zip 文件;它们可以表达传递依赖并具有其他一些好处。它应该让事情变得更容易!观看我们的博客以获取公告:in.relation.to
    猜你喜欢
    • 2017-11-09
    • 2023-03-15
    • 2018-06-04
    • 2018-01-11
    • 2014-11-09
    • 1970-01-01
    • 2017-09-07
    • 2014-03-16
    • 2013-09-23
    相关资源
    最近更新 更多