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 of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
