我们正在从2.3升级到2.4并且意识到在其javadoc中添加的行中引用的IgniteSpringBean中的更改导致我们将PostConstruct中的大量引用移动到handleContextRefresh .
然而,这打破点燃按照建议配置的 spring 事务配置,我不知道如何解决 . 基本上我们在spring应用程序xml中有以下内容,其中配置了IgniteSpringBean和SpringTransactionManager,它们在2.3中工作但是无法启动引用上面的更改2.4(我将稍微添加异常,因为我的机器突然停机),
<bean id="igniteSpringBean" class="org.apache.ignite.IgniteSpringBean">
<property name="configuration">
<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="igniteInstanceName" value="ObjectManagerGrid"/>
<property name="clientMode" value="true"/>
...
...
</bean>
</property>
</bean>
<!-- Enable Spring transaction abstraction for Ignite transactions -->
<bean id="transactionManager" class="org.apache.ignite.transactions.spring.SpringTransactionManager">
<property name="igniteInstanceName" value="ObjectManagerGrid"/>
<property name="transactionConcurrency" value="PESSIMISTIC"/>
</bean>
<!-- Enable annotation-driven transaction configuration/demarcation -->
<tx:annotation-driven/>
关于如何解决这个问题的任何线索?
谢谢!
更新:以下是例外,
ignite-object-manager - [错误] 2018-05-24 18:36:45.133 [main] org.springframework.boot.SpringApplication - 应用程序启动失败org.springframework.beans.factory.BeanCreationException:创建名为'transactionManager的bean时出错'在类路径资源[applicationContext.xml]中定义:init方法的调用失败;嵌套异常是类org.apache.ignite.IgniteIllegalStateException:不存在具有提供名称的Ignite实例 . 你有没有调用Ignition.start(..)来启动一个Ignite实例?位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628)的org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)的[name = ObjectManagerGrid] . springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:306)at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java) :197)org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFac) tory.java:761)atg.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)位于org.springframework.boot上的org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542) .context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)位于org.springframework.boot.SpringApplication.refresh(SpringApplication.java:737)的org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370)at org.springframework.boot.SpringApplication.run(SpringApplication.java:314)位于sun.reflect的sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)的com.brocade.dcm.Application.main(Application.java:63) . NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)位于org.springframework.bo的java.lang.reflect.Method.invoke(Method.java:498)的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ot.loader.MainMethodRunner.run(MainMethodRunner.java:48)org.springframework.boot.loader.Launcher.launch(Launcher.java:87)org.springframework.boot.loader.Launcher.launch(Launcher.java: 50)at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)引起:org.apache.ignite.IgniteIllegalStateException:不存在具有提供名称的Ignite实例 . 你有没有调用Ignition.start(..)来启动一个Ignite实例? org.apache.ignite.IgnitionEx.grid(IgnitionEx.java:1376)中的[name = ObjectManagerGrid]位于org.apache.ignite.transactions的org.apache.ignite.Ignition.ignite(Ignition.java:530) . spring.SpringTransactionManager.afterPropertiesSet(SpringTransactionManager.java:357)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory . java:1624)...省略了22个常用帧
1 回答
它没有被破坏,而是在IGNITE-6555中修复 .
不幸的是,这也意味着你必须找到一种方法现在推迟SpringTransactionManager的创建/初始化 .
有关user list问题的更多详细信息 .