Hi Team,
I am trying to define index on replicated region defined as below where
PdxInstance is created using JsonFormatter.fromJSON(jsonString)!
Note : I don't have any domain model called 'Event.java' which is being
converted to JSON, but I am getting Event as json string from source & that's
what I am pushing to cache
<geode:replicated-region id="Event"
cache-ref="geodeCache"
scope="distributed-ack"
key-constraint="java.lang.String"
value-constraint="org.apache.geode.pdx.PdxInstance"
shortcut="REPLICATE_PERSISTENT_OVERFLOW"
persistent="true"
disk-synchronous="false"
disk-store-ref="event_diskstore">
</geode:replicated-region>
<geode:index id="event_indx" expression="eventId" from="/Event"
cache-ref="geodeCache"/>
Exception:
org.apache.geode.cache.query.TypeMismatchException: The attribute or method
name ' eventId ' could not be resolved
at
org.apache.geode.cache.query.internal.ExecutionContext.resolve(ExecutionContext.java:228)
at
org.apache.geode.cache.query.internal.CompiledID.generateCanonicalizedExpression(CompiledID.java:93)
at
org.apache.geode.cache.query.internal.index.FunctionalIndexCreationHelper.prepareIndexExpression(FunctionalIndexCreationHelper.java:498)
... 27 common frames omitted
Wrapped by: org.apache.geode.cache.query.IndexInvalidException: Invalid indexed
expression : ' eventId '
at
org.apache.geode.cache.query.internal.index.FunctionalIndexCreationHelper.prepareIndexExpression(FunctionalIndexCreationHelper.java:513)
at
org.apache.geode.cache.query.internal.index.FunctionalIndexCreationHelper.<init>(FunctionalIndexCreationHelper.java:112)
at
org.apache.geode.cache.query.internal.index.IndexManager.createIndex(IndexManager.java:272)
at
org.apache.geode.cache.query.internal.DefaultQueryService.createIndex(DefaultQueryService.java:213)
at
org.apache.geode.cache.query.internal.DefaultQueryService.createIndex(DefaultQueryService.java:160)
at
org.apache.geode.cache.query.internal.DefaultQueryService.createIndex(DefaultQueryService.java:226)
at
org.apache.geode.cache.query.internal.DefaultQueryService.createIndex(DefaultQueryService.java:128)
at
org.springframework.data.gemfire.IndexFactoryBean.createFunctionalIndex(IndexFactoryBean.java:238)
at
org.springframework.data.gemfire.IndexFactoryBean.createIndex(IndexFactoryBean.java:149)
at
org.springframework.data.gemfire.IndexFactoryBean.afterPropertiesSet(IndexFactoryBean.java:98)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1642)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1579)
... 16 common frames omitted
Wrapped by: org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'event_indx': Invocation of init method failed; nested
exception is org.apache.geode.cache.query.IndexInvalidException: Invalid
indexed expression : ' eventId '
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1583)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:732)
at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:861)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541)
at
org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
at
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761)
at
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371)
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1186)
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1175)
Thanks,
Dharam
This email is confidential and subject to important disclaimers and conditions
including on offers for the purchase or sale of securities, accuracy and
completeness of information, viruses, confidentiality, legal privilege, and
legal entity disclaimers, available at
http://www.jpmorgan.com/pages/disclosures/email