Why there is a NoSuchMethod exception when knowledge session is created ?
Issue
When new knowledge session is being created, like this:
public class JPAKnowledgeServiceTest extends HttpServlet {
private static final long serialVersionUID = 1L;
private StatefulKnowledgeSession knowledgeSession;
@Override
public void init() {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("DroolsPersistence");
Environment environment = KnowledgeBaseFactory.newEnvironment();
environment.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf);
KnowledgeBuilder knowledgeBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
KnowledgeBase knowledgeBase = knowledgeBuilder.newKnowledgeBase();
knowledgeSession = JPAKnowledgeService.newStatefulKnowledgeSession(knowledgeBase, null, environment);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
knowledgeSession.insert("Hello world");
}
}
Following exception can be observed in the log:
15:07:05,075 ERROR [[JPAKnowledgeServiceTest]] Allocate exception for servlet JPAKnowledgeServiceTest
java.lang.NoSuchMethodError: org.drools.SessionConfiguration.addProperties(Ljava/util/Properties;)V
at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.mergeConfig(KnowledgeStoreServiceImpl.java:135)
at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.newStatefulKnowledgeSession(KnowledgeStoreServiceImpl.java:54)
at org.drools.persistence.jpa.JPAKnowledgeService.newStatefulKnowledgeSession(JPAKnowledgeService.java:122)
at com.sample.drools.JPAKnowledgeServiceTest.init(JPAKnowledgeServiceTest.java:38)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1048)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:777)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95)
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.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.internalProcess(ActiveRequestResponseCacheValve.java:74)
at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:47)
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:599)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451)
at java.lang.Thread.run(Thread.java:619)
Environment
-
Red Hat JBoss BRMS
- 5.2
- 5.3
-
Red Hat JBoss SOA-P
- 5.2
- 5.3
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.