首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Infinispan/Wildfly:找不到名称空间中元素“字符串键-jdbc-存储”的解析器

Infinispan/Wildfly:找不到名称空间中元素“字符串键-jdbc-存储”的解析器
EN

Stack Overflow用户
提问于 2017-03-07 18:49:35
回答 1查看 1.6K关注 0票数 0

我正在尝试配置一个JDBC支持的Infinispan缓存,以便在Wildfly 10/JBoss 7上存储Hibernate搜索索引。我已经在我的应用服务器中安装了来自infinispan.org的InfinisPA8.1.x Wildfly/JBoss模块,并且我终于获得了一个基本的infinispan.xml文件,用于文件持久性,现在我正在尝试将它更改为使用JDBC来实现持久性。我的infinispan.xml文件如下所示:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="urn:infinispan:config:8.1 http://www.infinispan.org/schemas/infinispan-config-8.1.xsd
                        urn:infinispan:config:jdbc:8.0 http://www.infinispan.org/schemas/infinispan-cachestore-jdbc-config-8.0.xsd"
    xmlns="urn:infinispan:config:8.1" xmlns:jdbc="urn:infinispan:config:store:jdbc:8.0">

    <jgroups>
        <stack-file name="default-jgroups-udp" path="default-configs/default-jgroups-udp.xml" />
    </jgroups>


    <cache-container name="HibernateSearch" default-cache="default"
        statistics="false" shutdown-hook="DONT_REGISTER">

        <transport stack="default-jgroups-udp" />

        <jmx duplicate-domains="true" />

        <!-- *************************************** -->
        <!-- Cache to store Lucene's file metadata -->
        <!-- *************************************** -->
        <replicated-cache name="LuceneIndexesMetadata" mode="SYNC"
            remote-timeout="25000">
            <locking striping="false" acquire-timeout="10000"
                concurrency-level="500" write-skew="false" />
            <transaction mode="NONE" />
            <eviction max-entries="-1" strategy="NONE" />
            <expiration max-idle="-1" />
            <persistence passivation="false">
                <file-store preload="true" purge="true"
                    path="${jboss.server.temp.dir}/indexes" />
            </persistence>
            <indexing index="NONE" />
            <state-transfer enabled="true" timeout="480000"
                await-initial-transfer="true" />
        </replicated-cache>

        <!-- **************************** -->
        <!-- Cache to store Lucene data -->
        <!-- **************************** -->
        <replicated-cache name="LuceneIndexesData" mode="SYNC"
            remote-timeout="25000">
            <locking striping="false" acquire-timeout="10000"
                concurrency-level="500" write-skew="false" />
            <transaction mode="NONE" />
            <eviction max-entries="-1" strategy="NONE" />
            <expiration max-idle="-1" />
            <persistence passivation="false">
                <string-keyed-jdbc-store xmlns="urn:infinispan:config:store:jdbc:8.0"
                    fetch-state="false" read-only="false" purge="false">
                    <data-source jndi-url="java:jboss/datasources/InfinispanCacheDS" />
                    <string-keyed-table drop-on-exit="false"
                        create-on-start="true" prefix="ISPN_STRING_TABLE">
                        <id-column name="ID_COLUMN" type="VARCHAR(255)" />
                        <data-column name="DATA_COLUMN" type="BINARY" />
                        <timestamp-column name="TIMESTAMP_COLUMN" type="BIGINT" />
                    </string-keyed-table>
                </string-keyed-jdbc-store>
            </persistence>
            <!-- <persistence passivation="false"> <file-store preload="true" purge="true" 
                path="${jboss.server.temp.dir}/indexes" /> </persistence> -->
            <indexing index="NONE" />
            <state-transfer enabled="true" timeout="480000"
                await-initial-transfer="true" />
        </replicated-cache>

        <!-- ***************************** -->
        <!-- Cache to store Lucene locks -->
        <!-- ***************************** -->
        <replicated-cache name="LuceneIndexesLocking" mode="SYNC"
            remote-timeout="25000">
            <locking striping="false" acquire-timeout="10000"
                concurrency-level="500" write-skew="false" />
            <transaction mode="NONE" />
            <eviction max-entries="-1" strategy="NONE" />
            <expiration max-idle="-1" />
            <persistence passivation="false">
                <file-store preload="true" purge="true"
                    path="${jboss.server.temp.dir}/indexes" />
            </persistence>
            <indexing index="NONE" />
            <state-transfer enabled="true" timeout="480000"
                await-initial-transfer="true" />
        </replicated-cache>
    </cache-container>

</infinispan>

我还使用了以下JBos-Deployment-structure.xml文件:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
    <deployment>
        <dependencies>

            <!-- Core Java/Java EE Dependencies -->
            <module name="javax.transaction.api" export="true" services="import" />

            <!-- JPA/Hibernate Search Dependencies -->
            <module name="javax.persistence.api" export="true" />

            <module name="org.hibernate.search.engine" export="true"
                services="import" slot="5.5" />
            <module name="org.hibernate.search.orm" export="true"
                services="import" slot="5.5" />

            <module name="org.infinispan.hibernate-search.directory-provider"
                slot="for-hibernatesearch-5.5" export="true" services="import" /><!-- 
                <module name="org.apache.lucene" export="true" services="import" /> <module 
                name="org.infinispan.lucene-directory" slot="ispn-8.1" /> -->

            <module name="org.infinispan.core" slot="ispn-8.1" services="import"
                export="true" />
            <module name="org.infinispan.persistence.jdbc" slot="ispn-8.1"
                services="import" export="true" />
            <module name="org.infinispan.persistence.remote" slot="ispn-8.1"
                services="import" export="true" />

        </dependencies>
    </deployment>
</jboss-deployment-structure>

然而,当我部署我的应用程序时,我会得到以下异常:

代码语言:javascript
运行
复制
ISPN000327: Cannot find a parser for element 'string-keyed-jdbc-store' in namespace 'urn:infinispan:config:store:jdbc:8.0'. Check that your configuration is up-to date for this version of Infinispan.

如果我将持久性从JDBC更改为"file“,一切都会正常工作。但是,一旦输入JDBC参数,就会得到解析错误。我肯定我做了件小事和蠢事来造成这件事,但我不能为我的一生想出什么。任何帮助都将不胜感激!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-07 22:37:18

在试图调查这个问题之后,我结束了打开一个bug报告:

问题是,我期望org.infinispan.core模块依赖于它的扩展,但事实并非如此。我之前提到过一个唤醒,但是仅仅编辑模块XML文件是不够的,因为没有简单的解决方案可以维护需要隔离的不同模块的隔离。

问题已经解决了,请升级到包含修复的Infinispan 9.0.0.Final,或者获得Infinispan 8.2.7.Final,因为我也会支持这个修复。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42655995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档