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(a)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