问题描述
我正在更新对应用程序JBPM 6.2的依赖关系,以迁移到RHPAM 7.26.0 redhat0006。我们已嵌入实现。
import java.io.IOException;
import java.util.Map;
import org.apache.log4j.Logger;
import org.kie.api.KieBase;
import org.kie.api.io.ResourceType;
import org.kie.internal.builder.KNowledgeBuilder;
import org.kie.internal.builder.KNowledgeBuilderError;
import org.kie.internal.builder.KNowledgeBuilderErrors;
import org.kie.internal.builder.KNowledgeBuilderFactory;
import org.kie.internal.io.ResourceFactory;
import org.springframework.beans.factory.factorybean;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternUtils;
public class KNowledgeBaseFactory implements factorybean<KieBase> {
private Logger log = Logger.getLogger(this.getClass().getName());
private ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
private String[] brmsResourcePatterns;
private Map<String,ResourceType> resourceType;
private KNowledgeBuilder builder;
private KieBase kbase;
public KieBase getobject() throws Exception {
if (kbase == null) {
builder = makeKNowledgeBase();
resolveBRMSResourceFromPatterns();
kbase = builder.newKieBase();
}
return kbase;
}
/**
* Creates KNowledgeBasebuilder object
*/
private static KNowledgeBuilder makeKNowledgeBase() {
return KNowledgeBuilderFactory.newKNowledgeBuilder();
}
kbase = builder.newKieBase();
曾经是kbase = builder.newKNowledgeBase();
org.kie.internal.builder.KNowledgeBuilder.newKNowledgeBase()。而是提供了org.kie.internal.builder.KNowledgeBuilder.newKieBase(),我已经在代码中对其进行了更新。
没有编译错误。但是,当我将其部署到tomcat以及服务器启动时,会出现以下错误。
org.springframework.beans.factory.BeanCreationException:创建类路径资源[meta-inf / jbpm-dataaccess-context.xml]中定义的名称为'runtimeEnvironment'的bean时出错:设置时无法解析对bean'ccKBaseFactory'的引用豆属性 '知识库';嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为'ccKBaseFactory'的bean时出错:factorybean在对象创建时抛出了异常;嵌套的异常是java.lang.NoSuchMethodError:org.kie.internal.builder.KNowledgeBuilder.newKieBase()Lorg / kie / api / KieBase;
我的数据访问上下文具有以下bean定义。
<bean id="ccKBaseFactory" name="ccKBaseFactory" class="com.package.init.KNowledgeBaseFactory">
<property name="brmsResourcePatterns">
<list>
<value>classpath*:process/*/*.bpmn2</value>
<value>classpath*:process/*.bpmn2</value>
<value>classpath*:process/*.drl</value>
<value>classpath*:process/*.dsl</value>
<value>classpath*:process/*.xls</value>
</list>
</property>
<property name="resourceType">
<map>
<entry key="bpmn2" value="#{T(org.kie.api.io.ResourceType).BPMN2}" />
<entry key="drl" value="#{T(org.kie.api.io.ResourceType).DRL}" />
<entry key="dsl" value="#{T(org.kie.api.io.ResourceType).DSL}" />
<entry key="xls" value="#{T(org.kie.api.io.ResourceType).DTABLE}" />
</map>
</property>
</bean>
<bean id="runtimeEnvironment" class="org.kie.spring.factorybeans.RuntimeEnvironmentfactorybean">
<property name="type" value="DEFAULT" />
<property name="entityManagerFactory" ref="jbpmEmf" />
<property name="entityManager" ref="jbpmEM" />
<property name="transactionManager" ref="jpaTransactionManager" />
<property name="kNowledgeBase" ref="ccKBaseFactory" />
</bean>
我不确定是什么问题。它可以与以前的版本配合使用,并且7.26库中包含newKieBase()方法。
请帮助我。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)