我们正在使用eclipse Kepler Service Release 2,Tomcat 7.0.64,JDk1.7。我们之前使用的是drools 5.4.0,现在我们已经升级了drools 6.2.0。作为升级的一部分,我们在构建路径和Web应用程序lib文件夹中添加了以下文件。
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。
答案 0 :(得分:0)
如果你没有使用maven,那么获得所有必要的依赖关系会变得非常复杂。
我的建议是创建一个非常简单的maven项目,其中包含您需要的依赖项(kie-api,drools-compiler,drools-core,drools-templates),然后执行:
mvn dependency:copy-dependencies
上面的命令将在target
下创建一个名为dependencies
的目录,您可以在其中找到您正在使用的Drools工件所需的所有.jar
个文件。
希望它有所帮助,