从JBPM 6.2到RHPAM 7.26的知识库工厂类更新操作抛出错误

问题描述

我正在更新对应用程序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 (将#修改为@)