Hello all
i want to call the jBPM process from servlet so i did it in the following way
my servlet class:
/**
*
*/
package com.spark.jbpm.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @author Sony
*
*/
public class JbpmServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
JBPMDao jbpmDao = new JBPMDao();
try {
jbpmDao.runJbpmProcess();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
my dao class:
/**
*
*/
package com.spark.jbpm.servlet;
import org.drools.KnowledgeBase;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.io.ResourceFactory;
import org.drools.io.impl.UrlResource;
import org.drools.runtime.StatefulKnowledgeSession;
/**
* @author Sony
*
*/
public class JBPMDao {
public void runJbpmProcess() throws Exception{
KnowledgeBase kbase = readKnowledgeBase();
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
ksession.startProcess("defaultPackage.HelloWorld");
}
private KnowledgeBase readKnowledgeBase() throws Exception {
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
String url = "http://localhost:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/defaultPackage/SimpleProcess";
System.out.println("Going: " + url);
UrlResource resource = (UrlResource) ResourceFactory.newUrlResource(url);
resource.setBasicAuthentication("enabled");
resource.setUsername("krisv");
resource.setPassword("krisv");
kbuilder.add(resource, ResourceType.PKG);
if(kbuilder.hasErrors()){
throw new RuntimeException(kbuilder.getErrors().toString());
}
KnowledgeBase knowledgeBase = kbuilder.newKnowledgeBase();
knowledgeBase.addKnowledgePackages(kbuilder.getKnowledgePackages());
return knowledgeBase;
}
}
my web.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>jBPMServlet</servlet-name>
<servlet-class>com.spark.jbpm.servlet.JbpmServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jBPMServlet</servlet-name>
<url-pattern>/jBPMServlet</url-pattern>
</servlet-mapping>
</web-app>
now when i deply and run the project i get the below error:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Error instantiating servlet class com.spark.jbpm.servlet.JbpmServlet org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) java.lang.Thread.run(Thread.java:662)
root cause
java.lang.ClassNotFoundException: com.spark.jbpm.servlet.JbpmServlet from [Module "deployment.Servlet-jBPM.war:main" from Service Module Loader] org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) org.jboss.as.web.deployment.WebInjectionContainer.newInstance(WebInjectionContainer.java:72) org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) java.lang.Thread.run(Thread.java:662)
can any one tell me the exact cause of this issue. i am also trying to resolve but not able to get the exact reason
Thanks
Pavan Kumar