2017-02-17 84 views
0

我在運行drools-core 6.5.0.Final時出現錯誤,並在騾子中使用簡單的彈簧配置。我使用spring 4.3.5.Final和JDK 1.8。我得到一個錯誤 org.mule.module.launcher.DeploymentInitException:NoSuchFieldError:COMPILER_OPT_ALLOW_RESOLVE_INNERCLASSES_WITH_DOTNOTATION 在org.mule.module.launcher.application.DefaultMuleApplication.init(DefaultMuleApplication.java:205初始化和驗證KieContainer失敗時。請注意,我解壓縮了檔案,檔案中沒有相互衝突的罐子,我只找到了2個Drools特定的罐子,drools-core和drools-decisiontables,都是6.5.0.Final。剩下的依賴關係。POM的唯一擁有所有Spring框架4.3.5.RELEASE和Hibernate 4.3。Drools 6.50使用JDK 1.8時出錯

kieContainer = KieServices.Factory.get().getKieClasspathContainer(); 

    LOG.info(kieContainer.verify().getMessages().toString()); 

我處理Excel電子表格決策表。

  <?xml version="1.0" encoding="UTF-8"?> 

     <mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc= 
     "http://www.mulesoft.org/schema/mule/documentation" 
     xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.8.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-current.xsd 
     http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd"> 
     <spring:beans> 
      <spring:bean id="letter" name="letter" class="org.springframework.core.io.ClassPathResource"> 
        <spring:constructor-arg name="path" value="com/xyz/db-config.xml"/> 
      </spring:bean> 
     <spring:bean id="stylusConfiguration" name="stylusConfiguration" class="com.xyz.Talent"> 
       <spring:property name="config"> 
        <spring:map> 
         <spring:entry key="member" value-ref="letter"/> 
        </spring:map> 
       </spring:property> 
      </spring:bean> 

     <spring:bean id="builderFactory" name="builderFactory" class="com.xyz.BuilderFactory" 
     factory-method="newInstance"/> 
     <spring:bean id="translator" name="translator" class="com.xyz.TranslatorConfigurator"> 
      <spring:property name="factory" ref="builderFactory"/> 
      <spring:property name="stylus" ref="stylusConfiguration"/> 
     </spring:bean> 

     <spring:bean id="eLander" name="eLander" class="com.xyz.transformers.TranslatorConfigurer"> 
      <spring:property name="translator" ref="translator"/> 
     </spring:bean> 

     </spring:beans> 

我查找了一個原因,但沒有找到答案。問題似乎與mvel庫有關,但我不知道可能會觸發它。請幫忙!

 </mule> 

我可以從堆棧跟蹤的問題是在這裏的春天方法見我實現 它在LOG.info失敗下面

 @Override 
public void afterPropertiesSet() throws Exception { 
    kieContainer = ...; 

     LOG.info(kieContainer.verify().getMessages().toString()); 
    try { 


        this.builder=factory.newDocumentBuilder(); 

      } catch (ParserConfigurationException e) { 

下面是我的POM的依賴關係:

       <dependencies> 
       <dependency> 
        <groupId>junit</groupId> 
        <artifactId>junit</artifactId> 
        <version>3.8.1</version> 
        <scope>test</scope> 
       </dependency> 

         <dependency> 
       <groupId>org.drools</groupId> 
       <artifactId>drools-core</artifactId> 
       <version>6.5.0.Final</version> 
      </dependency> 
      <dependency> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-core</artifactId> 
       <version>4.3.6.RELEASE</version> 
      </dependency> 

      <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>4.3.6.RELEASE</version> 
     </dependency> 

     <dependency> 
     <groupId>commons-io</groupId> 
     <artifactId>commons-io</artifactId> 
      <version>2.5</version> 
     </dependency> 

        <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-beans</artifactId> 
      <version>4.3.6.RELEASE</version> 
     </dependency> 

     <dependency> 
     <groupId>org.drools</groupId> 
     <artifactId>drools-decisiontables</artifactId> 
     <version>6.5.0.Final</version> 
     </dependency> 
       <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-validator</artifactId> 
     <version>4.3.1.Final</version> 
     </dependency> 
       <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-orm</artifactId> 
     <version>4.3.5.RELEASE</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.persistence</groupId> 
     <artifactId>persistence-api</artifactId> 
     <version>1.0</version> 
    </dependency> 

    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>4.3.5.Final</version> 
    </dependency> 



      </dependencies> 

回答

0

問題在於類加載器。我做了以下t解決問題:

KieServices ks = KieServices.Factory.get(); 
     kieContainer = ks.newKieClasspathContainer(getClass ().getClassLoader()); 
相關問題