问题: 尝试使用jpa-store和hibernate OGM配置infinspan缓存。我可以通过带有简单缓存存储的hotrod客户端访问infinispan服务器缓存,配置如下,
我在.. \ infinispan-server-8.1.0.CR1 \ standalone \ configuration \ standalone.xml中配置了以下内容,并按命令运行服务器../ bin> standalone.bat
<subsystem xmlns="urn:infinispan:server:core:8.1">
<cache-container name="local" default-cache="default" statistics="true">
...
<local-cache name="testCache">
<compatibility/>
</local-cache>
</<cache-container>
<subsystem>
In client side, accessing the cache sucessfully using hotrod client like below code.
Configuration config = new ConfigurationBuilder().addServer().host("127.0.0.1").port(11222).build();
RemoteCacheManager cacheManager = new RemoteCacheManager(config);
RemoteCache<Integer, TestEntity> cache = cacheManager.getCache("testCache");
1. How to configure jpa-store (with load from database and write into database) in standalone.xml?
I have tried with below code in standalone.xml.
<persistence passivation="false">
<jpa-store xmlns="urn:infinispan:config:store:jpa:8.0"
shared="true" preload="true"
persistence-unit="CachePersistenceUnit"
entity-class="TestEntity"
singleton="false"
batch-size="1">
</jpa-store>
</persistence>
引起:javax.xml.stream.XMLStreamException:WFLYCTL0198:意外元素&#39; {urn:infinispan:server:core:8.1}持久性&#39;遇到 在org.jboss.as.controller.parsing.ParseUtils.unexpectedElement(ParseUtils.java:89) 在org.jboss.as.clustering.infinispan.subsystem.InfinispanSubsystemXMLReader.parseCacheElement(InfinispanSubsystemXMLReader.java:971) 在org.jboss.as.clustering.infinispan.subsystem.InfinispanSubsystemXMLReader.parseLocalCache(InfinispanSubsystemXMLReader.java:706) 在org.jboss.as.clustering.infinispan.subsystem.InfinispanSubsystemXMLReader.parseContainer(InfinispanSubsystemXMLReader.java:247) at org.jboss.as.clustering.infinispan.subsystem.InfinispanSubsystemXMLReader.readElement(InfinispanSubsystemXMLReader.java:97) at org.jboss.as.clustering.infinispan.subsystem.InfinispanSubsystemXMLReader.readElement(InfinispanSubsystemXMLReader.java:70) 在org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:110) at org.jboss.staxmapper.XMLExtendedStreamReaderImpl.handleAny(XMLExtendedStreamReaderImpl.java:69) 在org.jboss.as.server.parsing.StandaloneXml_4.parseServerProfile(StandaloneXml_4.java:547) 在org.jboss.as.server.parsing.StandaloneXml_4.readServerElement(StandaloneXml_4.java:244) 在org.jboss.as.server.parsing.StandaloneXml_4.readElement(StandaloneXml_4.java:143) 在org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:69) 在org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:47) 在org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:110) 在org.jboss.staxmapper.XMLMapperImpl.parseDocument(XMLMapperImpl.java:69) 在org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:123) ......还有3个
答案 0 :(得分:0)
这两个问题实际上是相关的:
Infinispan Server被设计为后端数据存储,因此它不会设计为部署应用程序。
考虑到这一点,由于您无法在其上部署应用程序,因此您无法部署JPA实体,因此在服务器模式下配置JPA缓存存储没有意义。 / p>
您可以在Wildfly / EAP或类似环境中部署JPA实体,从而可以部署基于Infinispan的应用程序(请参阅tutorials here)并配置JPA存储。
干杯, 盖尔德