当前位置: 首页 > 知识库问答 >
问题:

Drools在Maven项目中抛出异常

梁丘弘
2023-03-14

我用6.5.0版创建了一个drools项目。决赛进行得很顺利。但当我创建一个maven项目时,它的抛出错误

Caused by: java.lang.NoSuchMethodError: com.thoughtworks.xstream.XStream.fromXML(Ljava/net/URL;)Ljava/lang/Object;
at org.drools.compiler.kproject.models.KieModuleModelImpl$kModuleMarshaller.fromXML(KieModuleModelImpl.java:207)
at org.drools.compiler.kproject.models.KieModuleModelImpl.fromXML(KieModuleModelImpl.java:154)
at org.drools.compiler.kie.builder.impl.ClasspathKieProject.fetchKModule(ClasspathKieProject.java:179)
at org.drools.compiler.kie.builder.impl.ClasspathKieProject.fetchKModule(ClasspathKieProject.java:141)
at org.drools.compiler.kie.builder.impl.ClasspathKieProject.discoverKieModules(ClasspathKieProject.java:112)
at org.drools.compiler.kie.builder.impl.ClasspathKieProject.init(ClasspathKieProject.java:84)
at org.drools.compiler.kie.builder.impl.KieContainerImpl.<init>(KieContainerImpl.java:139)
at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieClasspathContainer(KieServicesImpl.java:135)
at org.drools.compiler.kie.builder.impl.KieServicesImpl.getKieClasspathContainer(KieServicesImpl.java:101)
at org.drools.compiler.kie.builder.impl.KieServicesImpl.getKieClasspathContainer(KieServicesImpl.java:79)
at com.powerschool.cc.validationengine.engine.ValidationEngine.getKieSession(ValidationEngine.java:49)
at com.powerschool.cc.validationengine.engine.ValidationEngine.validationEngine(ValidationEngine.java:24)

这是我在POM文件中的依赖项

<dependencies>

    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20140107</version>
    </dependency>
    <dependency>
        <groupId>org.kie</groupId>
        <artifactId>kie-api</artifactId>
        <version>${runtime.version}</version>
    </dependency>
    <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-core</artifactId>
        <version>${runtime.version}</version>
    </dependency>
    <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-compiler</artifactId>
        <version>${runtime.version}</version>
    </dependency>
    <dependency>
        <groupId>javax.enterprise</groupId>
        <artifactId>cdi-api</artifactId>
        <version>${cdi.version}</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.weld.se</groupId>
        <artifactId>weld-se-core</artifactId>
        <version>${weld.version}</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
         <groupId>com.thoughtworks.xstream</groupId>
         <artifactId>xstream</artifactId> 
        <version>1.4.10-java7</version> </dependency>
</dependencies>

这是密码

private KieSession getKieSession(){
    KieServices services = null;
    KieContainer container = null;
    KieSession kieSession = null;
    try{

        services = KieServices.Factory.get();
        container = services.getKieClasspathContainer();
        kieSession = container.newKieSession("ksession-rules");
    }catch(Exception e){
        e.printStackTrace();
    }
    return kieSession;
}

getKieClasspathContainer正在抛出错误。

谷歌搜索了这个错误,发现添加Xstream依赖项可以解决这个问题,但解决不了。使用Java 7和tomcat 7。我需要向POM添加任何其他依赖项吗?有人知道吗?

共有1个答案

王俊哲
2023-03-14

xstream的POM中的依赖项版本是1.4.10-java7。

Drools 6.5.0-Final附带jar文件xstream-1.4.9。这意味着Drools jar是根据这个版本编译的。

我不能保证这就是你犯这个错误的原因,但值得一试。

 类似资料:
  • 由于一个我不知道的事件,调用在我的Ubuntu18.04中不再起作用。(自4月开始运行)。或I阶段尝试的任何其他生命周期都运行良好。 例如,如果我在克隆到中的Apache Commons IO的最新版本中运行,If显示 target/surefire-reports包含以下内容的许多重复 我尝试的任何其他项目都表现出类似的行为。 我尝试下载maven 3.5.4,解压缩它,通过将它添加到路径中,并

  • 我们的项目结构如下: 相关的JUnit测试位于A-A中。在使用Maven之前,我们必须调整Eclipse中的运行配置(将arguments选项卡中的工作目录设置为A-B,启动应用程序),以便在没有错误的情况下启动所有测试。 现在,当我们尝试运行测试时,无论我们是否在Eclipse中运行测试,我们都会从a-a中的类中得到一个 我的猜测是我们有一个错误的配置的POM和Surefire不能找到所有的类文

  • 我试图将我的maven项目部署到Glassfish 4,但当它部署失败时,我遇到以下异常: http://maven.apache.org/xsd/maven-4.0.0.xsd“>4.0.0

  • 我在Spring/Hibernate网络应用程序上有以下代码: 实体: 听众: 此代码在实体上每次更新或持久化后调用。问题在于,当为负数量引发异常时,hibernate将上的

  • 我刚接触GWT,是通过GWT2.4开始学习的。首先,我安装了eclipse插件,然后,我看到了eclipse工具栏中的图标。 当我单击新的Web应用程序项目时,它报告了一个异常。详细的堆栈跟踪如下所示。 eclipse.buildid=M20110909-1335 java.version=1.6.0_33 java.vendor=Sun Microsystems Inc.BootLoader常量

  • 在我的RCP应用程序中,当我关闭并重新打开PyDev项目时,PyDev会在控制台上抛出一个异常,抱怨项目资源不存在。之后一切似乎都能正常工作,但我当然希望避免向我的用户显示一个虚假的异常。 通过对堆栈跟踪的导航,我可以看出,PyDev的内容提供者希望项目资源存在,但它不存在。当我检测到一个项目关闭时,也许我应该调用PyDev中的某个API?还是这是个窃听器?我在5.1.2版本上注意到了这个问题,但