Drools从5.4升级到6.2不能在eclipse

时间:2016-06-07 06:56:24

标签: eclipse java-ee tomcat7 java-7 drools

我们正在使用eclipse Kepler Service Release 2,Tomcat 7.0.64,JDk1.7。我们之前使用的是drools 5.4.0,现在我们已经升级了drools 6.2.0。作为升级的一部分,我们在构建路径和Web应用程序li​​b文件夹中添加了以下文件。

1.drools编译-6.2.0.Final-红帽-4.jar
2.drools核心 - 6.2.0.Final - 红帽,4.jar
3.ecj-4.3.1.jar
4.drools模板 - 6.2.0.Final-的redhat-4.jar
5.kie-API 6.2.0.Final-的redhat-4.jar
6.kie-内部6.2.0.Final-红帽-4.jar
7.knowledge-API 6.2.0.Final-的redhat-4.jar
8.mvel2-2.2.4.Final-的redhat-1.jar
9.protobuf-Java的2.5.0.jar
10.slf4j-API-1.6.4.jar
11.slf4j-简单1.6.4.jar
12.xstream-1.4.7.jar
13.xmlpull-1.1.3.1.jar
14.antlr运行时-3.5.jar

我的tomcat和webspplication与之前版本的drools一起工作正常。但是,一旦我介绍了上述文件,问题就开始发生。从以下错误中我了解到一些jar文件正在发生冲突,但我不知道哪个文件存在冲突以及如何找到它。

当我启动我的tomcat web服务器时,我得到以下异常。

  

java.lang.NoSuchMethodError:   org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()[Lorg /蚀/ JDT /核心/编译器/ IProblem;     在   org.apache.jasper.compiler.JDTCompiler $ 2.acceptResult(JDTCompiler.java:354)     在   org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:480)     在   org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:425)     在org.apache.jasper.compiler.Compiler.compile(Compiler.java:298)at   org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)at   org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)at   org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)     在   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302)     在   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)     在org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)     在javax.servlet.http.HttpServlet.service(HttpServlet.java:731)at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)     在   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)     在   org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)     在   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)     在   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)     在   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)     在   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)     在   org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)     在   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)     在   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)     在   org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)     在   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)     在   org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)     在   org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)     在   org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:625)     在   org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:316)     在   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)     在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:615)     在   org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)     在java.lang.Thread.run(Thread.java:745)2016年6月7日上午11:56:57   org.apache.catalina.core.StandardWrapperValve调用SEVERE:   servlet [jsp]的Servlet.service()在路径[]的上下文中抛出   异常[java.lang.NoSuchMethodError:   org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()[Lorg /蚀/ JDT /核心/编译器/ IProblem;]   根本原因java.lang.NoSuchMethodError:   org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()[Lorg /蚀/ JDT /核心/编译器/ IProblem;     在   org.apache.jasper.compiler.JDTCompiler $ 2.acceptResult(JDTCompiler.java:354)     在   org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:480)     在   org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:425)     在org.apache.jasper.compiler.Compiler.compile(Compiler.java:298)at   org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)at   org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)at   org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)     在   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302)     在   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)     在org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)     在javax.servlet.http.HttpServlet.service(HttpServlet.java:731)at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)     在   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)     在   org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)     在   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)     在   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)     在   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)     在   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)     在   org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)     在   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)     在   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)     在   org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)     在   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)     在   org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)     在   org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)     在   org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:625)     在   org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:316)     在   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)     在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:615)     在   org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)     在java.lang.Thread.run(Thread.java:745)

有人可以帮我解决上述问题吗?

注意:我们在项目设置中没有使用Maven。

1 个答案:

答案 0 :(得分:0)

如果你没有使用maven,那么获得所有必要的依赖关系会变得非常复杂。

我的建议是创建一个非常简单的maven项目,其中包含您需要的依赖项(kie-api,drools-compiler,drools-core,drools-templates),然后执行:

mvn dependency:copy-dependencies

上面的命令将在target下创建一个名为dependencies的目录,您可以在其中找到您正在使用的Drools工件所需的所有.jar个文件。

希望它有所帮助,