【发布时间】:2015-10-23 10:14:15
【问题描述】:
我使用 Guvnor 实现了一个决策引擎,当我尝试使用 .jar 文件上传 模型 并选择“新建->上传 POJO 模型”时,稍后单击在“文件->保存”中,Guvnor 抛出异常:无法验证数据包配置。在日志中,guvnor 写道:
10:37:32,592 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/drools-guvnor]] (http--0.0.0.0-8080-2) Exception while dispatching incoming RPC call: com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine org.drools.guvnor.client.rpc.SuggestionCompletionEngineService.loadSuggestionCompletionEngine(java.lang.String) throws com.google.gwt.user.client.rpc.SerializationException' threw an unexpected exception: java.lang.NoClassDefFoundError: com/microsoft/sqlserver/jdbc/SQLServerException
at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:385) [gwt-servlet-2.4.0.jar:]
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:588) [gwt-servlet-2.4.0.jar:]
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208) [gwt-servlet-2.4.0.jar:]
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248) [gwt-servlet-2.4.0.jar:]
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62) [gwt-servlet-2.4.0.jar:]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
at org.jboss.solder.servlet.exception.CatchExceptionFilter.doFilter(CatchExceptionFilter.java:65) [solder-impl-3.1.1.Final.jar:3.1.1.Final]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
at org.jboss.solder.servlet.event.ServletEventBridgeFilter.doFilter(ServletEventBridgeFilter.java:74) [solder-impl-3.1.1.Final.jar:3.1.1.Final]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.13.Final.jar:]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.13.Final.jar:]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.13.Final.jar:]
at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_45]
Caused by: java.lang.NoClassDefFoundError: com/microsoft/sqlserver/jdbc/SQLServerException
at java.lang.Class.forName0(Native Method) [rt.jar:1.6.0_45]
at java.lang.Class.forName(Class.java:249) [rt.jar:1.6.0_45]
at org.drools.rule.MapBackedClassLoader.loadClass(MapBackedClassLoader.java:108) [drools-core-5.5.0.Final.jar:5.5.0.Final]
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) [rt.jar:1.6.0_45]
at org.drools.base.ClassTypeResolver.resolveType(ClassTypeResolver.java:155) [drools-core-5.5.0.Final.jar:5.5.0.Final]
at org.drools.ide.common.server.rules.SuggestionCompletionLoader.loadClass(SuggestionCompletionLoader.java:647) [droolsjbpm-ide-common-5.5.0.Final.jar:5.5.0.Final]
at org.drools.ide.common.server.rules.SuggestionCompletionLoader.addFactType(SuggestionCompletionLoader.java:606) [droolsjbpm-ide-common-5.5.0.Final.jar:5.5.0.Final]
at org.drools.ide.common.server.rules.SuggestionCompletionLoader.populateModelInfo(SuggestionCompletionLoader.java:320) [droolsjbpm-ide-common-5.5.0.Final.jar:5.5.0.Final]
at org.drools.ide.common.server.rules.SuggestionCompletionLoader.populateEngineBuilder(SuggestionCompletionLoader.java:224) [droolsjbpm-ide-common-5.5.0.Final.jar:5.5.0.Final]
at org.drools.ide.common.server.rules.SuggestionCompletionLoader.processPackageHeader(SuggestionCompletionLoader.java:218) [droolsjbpm-ide-common-5.5.0.Final.jar:5.5.0.Final]
at org.drools.ide.common.server.rules.SuggestionCompletionLoader.getSuggestionEngine(SuggestionCompletionLoader.java:186) [droolsjbpm-ide-common-5.5.0.Final.jar:5.5.0.Final]
at org.drools.guvnor.server.util.BRMSSuggestionCompletionLoader.getSuggestionEngine(BRMSSuggestionCompletionLoader.java:63) [classes:5.5.0.Final]
at org.drools.guvnor.server.util.BRMSSuggestionCompletionLoader.getSuggestionEngine(BRMSSuggestionCompletionLoader.java:70) [classes:5.5.0.Final]
at org.drools.guvnor.server.SuggestionCompletionEngineLoaderInitializer.loadFor(SuggestionCompletionEngineLoaderInitializer.java:42) [classes:5.5.0.Final]
at org.drools.guvnor.server.SuggestionCompletionEngineServiceImplementation.loadSuggestionCompletionEngine(SuggestionCompletionEngineServiceImplementation.java:48) [classes:5.5.0.Final]
at org.drools.guvnor.server.SuggestionCompletionEngineServiceServlet.loadSuggestionCompletionEngine(SuggestionCompletionEngineServiceServlet.java:37) [classes:5.5.0.Final]
at sun.reflect.GeneratedMethodAccessor96.invoke(Unknown Source) [:1.6.0_45]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_45]
at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_45]
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:569) [gwt-servlet-2.4.0.jar:]
... 27 more
Caused by: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerException from [Module "deployment.drools-guvnor.war:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
at java.lang.Class.forName0(Native Method) [rt.jar:1.6.0_45]
at java.lang.Class.forName(Class.java:249) [rt.jar:1.6.0_45]
at org.drools.rule.MapBackedClassLoader.loadClass(MapBackedClassLoader.java:108) [drools-core-5.5.0.Final.jar:5.5.0.Final]
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) [rt.jar:1.6.0_45]
... 47 more
当我推入“验证配置”时,我收到此错误:无法找到类:com.microsoft.sqlserver.jdbc.SQLServerException,这是 *.deceng.utility.CDBConnection 所需的。您可能需要向模型添加更多类。但是我在 mi eclipse 项目中添加了这个库
以及如何在 .jar 类路径中看到 sqljdbc4.jar 包含在内:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry combineaccessrules="false" kind="src" path="/Model"/>
<classpathentry exported="true" kind="lib" path="C:/Users/jmflores/DECENG-TEST/ExtLib/log4j-1.2.17.jar"/>
<classpathentry exported="true" kind="lib" path="C:/Users/jmflores/DECENG-TEST/ExtLib/sqljdbc4.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
我尝试了所有但我不知道我能做到。
感谢和问候。
编辑:
我尝试使用部署程序集但不起作用。
我在部署中添加 sqljdbc4.jar,稍后再次导出 .jar 和 java.lang.NoClassDefFoundError 等项目。
【问题讨论】:
标签: java eclipse jar drools-guvnor