RuntimeEnvironmentFactoryBean does not seem to load kjar from local maven repository if used with "type" of "DEFAULT_KJAR_CL"
Issue
- While using
KieScanner
to fetch the latest released version of a kjar from remote maven repository it downloads the latest updated versions of the kjar into the system's local maven repository<USER_HOME>/.m2/repository/
folder. However there seems to be a problem with the way Spring beanorg.kie.spring.factorybeans.RuntimeEnvironmentFactoryBean
works to getKieBase
from the kjars available in local maven repository. It has been observed that iforg.kie.spring.factorybeans.RuntimeEnvironmentFactoryBean
is configured to useDEFAULT_KJAR_CL
astype
property in theApplictionContext.xml
file of the Spring based application, it fails to look up and load kjars from local maven repository.
...
<bean id="defaultRuntimeEnvironmentBean" class="org.kie.spring.factorybeans.RuntimeEnvironmentFactoryBean" >
<property name="type" value="DEFAULT_KJAR_CL"/>
...
<property name="ksessionName" value="defaultKjarKieSesion"/>
<property name="kbaseName" value="defaultKjarKieBase"/>
...
<property name="groupId" value= "com.sample.process.test"/>
<property name="artifactId" value= "SimpleProcessBasedProject"/>
<property name="version" value= "1.0-SNAPSHOT"/>
</bean>
...
The following exception is thrown if such a Spring application is deployed.
ERROR | ContextLoader.contextInitialized | Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'defaultRuntimeManagerUtility': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: org.kie.api.runtime.manager.RuntimeManager com.sample.process.workflow.DefaultRuntimeManagerUtility.defaultRuntimeManager; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'defaultRuntimeManager' defined in ServletContext resource [/WEB-INF/ApplicationContext.xml]: Cannot resolve reference to bean 'defaultRuntimeEnvironment' while setting bean property 'defaultRuntimeEnvironment'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'defaultRuntimeEnvironment': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: Cannot find kbase with name defaultKjarKieBase
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:287) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913) ~[spring-context-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) ~[spring-context-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385) ~[spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284) ~[spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111) [spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723) [catalina.jar:7.0.22]
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226) [catalina.jar:7.0.22]
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221) [catalina.jar:7.0.22]
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [na:1.7.0_21]
at java.util.concurrent.FutureTask.run(FutureTask.java:166) [na:1.7.0_21]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_21]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_21]
at java.lang.Thread.run(Thread.java:722) [na:1.7.0_21]
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: org.kie.api.runtime.manager.RuntimeManager com.sample.process.workflow.DefaultRuntimeManagerUtility.defaultRuntimeManager; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'defaultRuntimeManager' defined in ServletContext resource [/WEB-INF/ApplicationContext.xml]: Cannot resolve reference to bean 'defaultRuntimeEnvironment' while setting bean property 'defaultRuntimeEnvironment'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'defaultRuntimeEnvironment': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: Cannot find kbase with name defaultKjarKieBase
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:506) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:284) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
... 21 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'defaultRuntimeManager' defined in ServletContext resource [/WEB-INF/ApplicationContext.xml]: Cannot resolve reference to bean 'defaultRuntimeEnvironment' while setting bean property 'defaultRuntimeEnvironment'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'defaultRuntimeEnvironment': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: Cannot find kbase with name defaultKjarKieBase
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:848) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:790) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:707) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:478) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
... 23 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'defaultRuntimeEnvironment': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: Cannot find kbase with name defaultKjarKieBase
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:149) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:109) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1442) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:305) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
... 36 common frames omitted
Caused by: java.lang.IllegalStateException: Cannot find kbase with name defaultKjarKieBase
at org.jbpm.runtime.manager.impl.RuntimeEnvironmentBuilder.setupClasspathKmoduleBuilder(RuntimeEnvironmentBuilder.java:249) ~[jbpm-runtime-manager-6.0.3-redhat-7.jar:6.0.3-redhat-7]
at org.jbpm.runtime.manager.impl.RuntimeEnvironmentBuilder.newClasspathKmoduleDefaultBuilder(RuntimeEnvironmentBuilder.java:405) ~[jbpm-runtime-manager-6.0.3-redhat-7.jar:6.0.3-redhat-7]
at org.kie.spring.factorybeans.RuntimeEnvironmentFactoryBean.getObject(RuntimeEnvironmentFactoryBean.java:136) ~[kie-spring-6.0.3-redhat-6.jar:6.0.3-redhat-6]
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142) ~[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
... 41 common frames omitted
What is correct configuration to fix this issue?
Environment
- Red Hat JBoss BPM Suite (BPMS)
- 6.0.3
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.