Apache Ignite: невозможно запустить с базовой конфигурацией XML, содержащей политику истечения срока действия - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь запустить Ignite с некоторыми конфигами XML, и я следую документации, но не могу запустить ее. Вот мои конфиги:

<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 class org.apache.ignite.IgniteException: не удалось создать экземпляр контекста приложения Spring XML [springUrl = file: /path/to/etc/cache.xml, err = Ошибка при создании компонента с именем «ignite.cfg», определенным в URL [file: /path/to/etc/cache.xml]: ошибка установки значений свойств;вложенное исключение: org.springframework.beans.NotWritablePropertyException: недопустимое свойство 'expiryPolicyFactory' класса бина [org.apache.ignite.configuration.IgniteConfiguration]: свойство бина 'expiryPolicyFactory' не доступно для записи или имеет недопустимый метод установки. Соответствует ли тип параметра установщика типу возвращаемого значения получателя?] В org.apache.ignite.internal.util.IgniteUtils.convertException (IgniteUtils.java:1029) в org.apache.ignite.Ignition.start (Ignition. java: 351) at org.apache.ignite.startup.cmdline.CommandLineStartup.main (CommandLineStartup.java:301). Причина: class org.apache.ignite.IgniteCheckedException: не удалось создать экземпляр контекста приложения Spring XML [springUrl = file: /path / to / etc / cache.xml, err = Ошибка создания бина с именем ignite.cfg, определенным в URL [file: /path/to/etc/cache.xml]: Ошибка при установке значений свойств;вложенное исключение: org.springframework.beans.NotWritablePropertyException: недопустимое свойство 'expiryPolicyFactory' класса бина [org.apache.ignite.configuration.IgniteConfiguration]: свойство бина 'expiryPolicyFactory' не доступно для записи или имеет недопустимый метод установки. Соответствует ли тип параметра установщика возвращаемому типу получателя?] В 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. 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: Ошибка создания компонента с именем ignite.cfg, определенным в URL [file: /path/to/etc/cache.xml]: Ошибка установки значений свойств;вложенное исключение: org.springframework.beans.NotWritablePropertyException: недопустимое свойство 'expiryPolicyFactory' класса бина [org.apache.ignite.configuration.IgniteConfiguration]: свойство бина 'expiryPolicyFactory' не доступно для записи или имеет недопустимый метод установки. Соответствует ли тип параметра установщика типу возвращаемого значения получателя? на 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. support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:197) в org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons (DefaultListableBeanFactory.java.jpg867) в org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:543) в org.apache.ignite.internal.util.spring.IgniteSpringHelperImpl.applicationContext (IgniteImpl)by: org.springframework.beans.NotWritablePropertyException: недопустимое свойство 'expiryPolicyFactory' класса бина [org.apache.ignite.configuration.IgniteConfiguration]: свойство bean-компонента 'expiryPolicyFactory' недоступно для записи или имеет недопустимый метод установки. Соответствует ли тип параметра установщика типу возвращаемого значения получателя? на 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. 75) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues ​​(AbstractAutowireCapableBeanFactory.java:1570) ... еще 20 Не удалось запустить сетку: не удалось создать контекст / XML-файл / Spring / приложение Spring Spring приложения [SpringUrl]etc / cache.xml, err = Ошибка создания бина с именем ignite.cfg ', определенный в URL [file: /path/to/etc/cache.xml]: ошибка установки значений свойств;вложенное исключение: org.springframework.beans.NotWritablePropertyException: недопустимое свойство 'expiryPolicyFactory' класса бина [org.apache.ignite.configuration.IgniteConfiguration]: свойство бина 'expiryPolicyFactory' не доступно для записи или имеет недопустимый метод установки. Соответствует ли тип параметра установщика типу возвращаемого значения получателя?]

Я проверил исходный код для 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>

(I 'используя Ignite 2.7.6.)

Как определить политику истечения срока действия для Ignite?

1 Ответ

0 голосов
/ 30 сентября 2019

Я только что понял, что проблема в том, что я поставил конфиг в неправильном месте. Я получил это для работы конфигурации:

<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"/>
                <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>
        </list>
    </property>
  </bean>
</beans>
...