[rules-users] Strange java.lang.NoClassDefFoundError

Benson Fung benson.redhat at gmail.com
Mon Apr 11 14:13:09 EDT 2011


Hi,

Please note that, if I make 200 ajax call to validate 200 fields.  It
works fine without any problem.
But if validate 2000 fields, the exception comes up.  Please advise
what is the root cause in the BRMS(Drools Guvnor).


Thanks
Benson

On Tue, Apr 12, 2011 at 2:00 AM, Benson Fung <benson.redhat at gmail.com> wrote:
> Hi,
>
> I have a GWT RPC method as follows :
>
>        public String validate(ApplicationData ad) {
>                Object dataObj = null;
>
>                KnowledgeAgent kagent =
> (KnowledgeAgent)getServletContext().getAttribute("KNOWLEDGE_AGENT");
>                KnowledgeBase kbase = kagent.getKnowledgeBase();
>                StatefulKnowledgeSession sf = kbase.newStatefulKnowledgeSession();
>                FactType ft = kbase.getFactType("axaPMTPOCPackage", "ApplicationData");
>                try {
>                        dataObj = ft.newInstance();
>                        ft.set(dataObj, "name", ad.getName());
>                        ft.set(dataObj, "sex", ad.getSex());
>                        ft.set(dataObj, "minIssrdAge", ad.getMinIssrdAge());
>                        ft.set(dataObj, "age", ad.getAge());
>                        ft.set(dataObj, "boxname", ad.getBoxname());
>                        sf.insert(dataObj);
>                        RuleNameStartsWithAgendaFilter filter = new
> RuleNameStartsWithAgendaFilter(ad.getRuleName());
>                        sf.fireAllRules(filter);
>                        sf.dispose();
>                } catch(Exception e) {
>                        e.printStackTrace();
>                }
>
>                String returnMsg = (String)ft.get(dataObj, "returnMsg");
>                return returnMsg;
>        }
>
> At the client side, I made 2000 times of the above ajax call to
> validate 2000 fields.
> However, I got the following java exception after making certain
> number of calls.
>
> 2011-04-11 15:45:17,438 ERROR
> [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/axa_pmt_poc]]
> (http-127.0.0.1-8080-8) Exception while dispatching incoming RPC call
> com.google.gwt.user.server.rpc.UnexpectedException: Service method
> 'public abstract java.lang.String
> com.axa.pmt.poc.client.ExecuteRuleService.validate(com.axa.pmt.poc.data.ApplicationData)'
> threw an unexpected exception: java.lang.NoClassDefFoundError:
> axaPMTPOCPackage/ApplicationData
>        at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:378)
>        at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:581)
>        at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:207)
>        at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:243)
>        at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>        at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
>        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>        at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
>        at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
>        at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
>        at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
>        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>        at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
>        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
>        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
>        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
>        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>        at java.lang.Thread.run(Thread.java:662)
> Caused by: java.lang.NoClassDefFoundError: axaPMTPOCPackage/ApplicationData
>        at ASMAccessorImpl_19303314141302536715970.getValue(Unknown Source)
>        at org.mvel2.optimizers.dynamic.DynamicGetAccessor.getValue(DynamicGetAccessor.java:66)
>        at org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:96)
>        at org.mvel2.MVELRuntime.execute(MVELRuntime.java:85)
>        at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:104)
>        at org.mvel2.MVEL.executeExpression(MVEL.java:1001)
>        at org.drools.base.mvel.MVELConsequence.evaluate(MVELConsequence.java:103)
>        at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:917)
>        at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:856)
>        at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1071)
>        at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:785)
>        at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:761)
>        at org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:226)
>        at com.axa.pmt.poc.server.ExecuteRuleServiceImpl.validate(ExecuteRuleServiceImpl.java:51)
>        at sun.reflect.GeneratedMethodAccessor275.invoke(Unknown Source)
>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:562)
>        ... 25 more
>
>
> Please help give me ideas what is going on.
>
>
> Thanks
> Benson
>




More information about the rules-users mailing list