Apache Ignite:无法从包含到期策略的基本XML配置开始

问题描述 投票:0回答:1

我正在尝试使用一些XML配置启动Ignite,并且正在关注文档,但无法启动它。这是我的配置:

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
  <bean id="ignite.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
    <property name="cacheConfiguration">
        <list>
            <!-- Partitioned cache example configuration (Atomic mode). -->
            <bean class="org.apache.ignite.configuration.CacheConfiguration">
                <property name="name" value="default"/>
                <property name="atomicityMode" value="ATOMIC"/>
                <property name="backups" value="1"/>
                <property name="eagerTtl" value="true"/>
            </bean>
        </list>
    </property>
    <property name="expiryPolicyFactory">
        <bean class="javax.cache.expiry.CreatedExpiryPolicy" factory-method="factoryOf">
            <constructor-arg>
                <bean class="javax.cache.expiry.Duration">
                    <constructor-arg value="MINUTES"/>
                    <constructor-arg value="5"/>
                </bean>
            </constructor-arg>
        </bean>
    </property>
  </bean>
</beans>

当我尝试使用这些配置时,出现以下异常:

$ bin / ignite.sh /path/to/etc/cache.xml类org.apache.ignite.IgniteException:无法实例化Spring XML应用程序上下文[springUrl = file:/path/to/etc/cache.xml,err = Error在URL中创建名称为“ ignite.cfg”的bean[file:/path/to/etc/cache.xml]:设置属性值时出错;嵌套异常是org.springframework.beans.NotWritablePropertyException:Bean类的无效属性'expiryPolicyFactory'[org.apache.ignite.configuration.IgniteConfiguration]:Bean属性“ expiryPolicyFactory”不可写或具有无效的setter方法。设置器的参数类型是否与返回值的类型匹配吸气剂?]在org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:1029)在org.apache.ignite.Ignition.start(Ignition.java:351)处org.apache.ignite.startup.cmdline.CommandLineStartup.main(CommandLineStartup.java:301)原因:类org.apache.ignite.IgniteCheckedException:失败实例化Spring XML应用程序上下文[springUrl =文件:/path/to/etc/cache.xml,err=使用以下命令创建bean时出错URL [文件:/path/to/etc/cache.xml]中定义的名称“ ignite.cfg”:错误设置属性值;嵌套异常为org.springframework.beans.NotWritablePropertyException:无效bean类的属性“ expiryPolicyFactory”[org.apache.ignite.configuration.IgniteConfiguration]:Bean属性“ expiryPolicyFactory”不可写或具有无效的setter方法。设置器的参数类型是否与返回值的类型匹配吸气剂?]在org.apache.ignite.internal.util.spring.IgniteSpringHelperImpl.applicationContext(IgniteSpringHelperImpl.java:392)在org.apache.ignite.internal.util.spring.IgniteSpringHelperImpl.loadConfigurations(IgniteSpringHelperImpl.java:104)在org.apache.ignite.internal.util.spring.IgniteSpringHelperImpl.loadConfigurations(IgniteSpringHelperImpl.java:98)在org.apache.ignite.internal.IgnitionEx.loadConfigurations(IgnitionEx.java:751)在org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:952)在org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:861)在org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:731)在org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:700)在org.apache.ignite.Ignition.start(Ignition.java:348)...还有1引起原因:org.springframework.beans.factory.BeanCreationException:在URL中创建名称为'ignite.cfg'的bean时出错[file:/path/to/etc/cache.xml]:设置属性值时出错;嵌套异常是org.springframework.beans.NotWritablePropertyException:Bean类的无效属性'expiryPolicyFactory'[org.apache.ignite.configuration.IgniteConfiguration]:Bean属性“ expiryPolicyFactory”不可写或具有无效的setter方法。设置器的参数类型是否与返回值的类型匹配吸气剂?在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1574)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1284)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)在org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:312)在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308)在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)在org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)在org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)在org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)在org.apache.ignite.internal.util.spring.IgniteSpringHelperImpl.applicationContext(IgniteSpringHelperImpl.java:381)... 9更多原因:org.springframework.beans.NotWritablePropertyException:无效bean类的属性“ expiryPolicyFactory”[org.apache.ignite.configuration.IgniteConfiguration]:Bean属性“ expiryPolicyFactory”不可写或具有无效的setter方法。设置器的参数类型是否与返回值的类型匹配吸气剂?在org.springframework.beans.BeanWrapperImpl.createNotWritablePropertyException(BeanWrapperImpl.java:239)在org.springframework.beans.AbstractNestablePropertyAccessor.processLocalProperty(AbstractNestablePropertyAccessor.java:435)在org.springframework.beans.AbstractNestablePropertyAccessor.setPropertyValue(AbstractNestablePropertyAccessor.java:290)在org.springframework.beans.AbstractNestablePropertyAccessor.setPropertyValue(AbstractNestablePropertyAccessor.java:278)在org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:95)在org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:75)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1570)... 20更多无法启动网格:无法实例化Spring XML应用程序上下文[springUrl = file:/path/to/etc/cache.xml,err = Error在URL中创建名称为“ ignite.cfg”的bean[file:/path/to/etc/cache.xml]:设置属性值时出错;嵌套异常是org.springframework.beans.NotWritablePropertyException:Bean类的无效属性'expiryPolicyFactory'[org.apache.ignite.configuration.IgniteConfiguration]:Bean属性“ expiryPolicyFactory”不可写或具有无效的setter方法。设置器的参数类型是否与返回值的类型匹配吸气剂?]

我检查了Ignite的源代码,就像异常状态一样,expiryPolicyFactory不是org.apache.ignite.configuration.IgniteConfiguration的属性。

我用于配置(用于设置到期策略)的Ignite文档在这里:https://apacheignite.readme.io/docs/expiry-policies哪个状态:

<bean class="org.apache.ignite.configuration.CacheConfiguration">
    ...

    <property name="expiryPolicyFactory">
        <bean class="javax.cache.expiry.CreatedExpiryPolicy" factory-method="factoryOf">
            <constructor-arg>
                <bean class="javax.cache.expiry.Duration">
                    <constructor-arg value="MINUTES"/>
                    <constructor-arg value="5"/>
                </bean>
            </constructor-arg>
        </bean>
    </property>
</bean>

(我正在使用Ignite 2.7.6。)

我应该如何为Ignite定义过期策略?

java spring spring-boot ignite
1个回答
0
投票

我刚刚意识到问题是我将配置放在错误的位置。我得到这个配置工作:

© www.soinside.com 2019 - 2024. All rights reserved.