2012-08-08 64 views
0

我测试在eclipse 一个简单的工作流实例,而不使用JBoss(通过使配置当然jbpm5到Eclipse所以它支持jbpm5)jbpm5在Web应用程序与JBoss 5.1

现在我想测试的样品工作流程在JEE应用(Web应用程序),在JBoss的服务器上运行5.1

我有这样的文件:Web应用程序的源文件夹下sample.bpmn和我做ProcessMain.java

在src \ COM \样本

ProcessMain.java

package com.sample; 

import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 

import javax.naming.Context; 
import javax.naming.InitialContext; 

import org.apache.commons.collections.map.HashedMap; 
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.runtime.StatefulKnowledgeSession; 

import com.esprit.ConsoftEJB.daos.RequestDaoRemote; 
import com.esprit.ConsoftEJB.daos.UserDaoRemote; 
import com.esprit.ConsoftEJB.persistence.Request; 

/** 
* This is a sample file to launch a process. 
*/ 
public class ProcessMain { 

    private RequestDaoRemote reqService ; 

    private List<Request> requests=new ArrayList<Request>(); 
public ProcessMain() { 
    // TODO Auto-generated constructor stub 

} 

public List<Request> getAllRequest() 
{ 
    try { 
     Context context=new InitialContext(); 
     setReqService((RequestDaoRemote) context.lookup("erq")); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return requests=reqService.lisAll(); 
} 

    public static final void main(String[] args) throws Exception { 

     validation(); 


    } 

     public static void validation() 
     { 
      int state=0; 
      KnowledgeBase kbase = null; 
      try { 
       kbase = readKnowledgeBase(); 
      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); 
      // start a new process instance 
      ProcessMain p=new ProcessMain(); 
      List<Request> listreq= p.getAllRequest(); 
      for (int i = 0; i < listreq.size(); i++) { 
       state=Integer.parseInt(listreq.get(i).getState()); 
      System.err.println(listreq.get(i).getState()); 
      Map<String,Object> param=new HashMap<String,Object>(); 
      param.put("etat",state); 

      ksession.startProcess("com.sample.bpmn.hello",param); 


     } 

      } 

    private static KnowledgeBase readKnowledgeBase() throws Exception { 
     KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); 
     kbuilder.add(ResourceFactory.newClassPathResource("sample.bpmn"), ResourceType.BPMN2); 
     return kbuilder.newKnowledgeBase(); 
    } 
    public RequestDaoRemote getReqService() { 
     return reqService; 
    } 
    public void setReqService(RequestDaoRemote reqService) { 
     this.reqService = reqService; 
    } 



    public List<Request> getRequests() { 
     return requests; 
    } 



    public void setRequests(List<Request> requests) { 
     this.requests = requests; 
    } 

} 

的源代码,我测试这个班上,她显示正确的结果在控制台模式

(这是在sample.bpmn文件中设置)

但是当我提出的网页(JSP页)一个按钮,利用所述方法验证从Java类ProcessMain.java显示

此错误

java.lang.ClassNotFoundException: org.drools.builder.KnowledgeBuilderFactory from [email protected]{[email protected]{name=vfsfile:/C:/serveur/jboss-5.1.0.GA/jboss-5.1.0.GA/server/default/deploy/ProjetVrai.war/ [email protected]{name=vfsfile:/C:/serveur/jboss-5.1.0.GA/jboss-5.1.0.GA/server/default/deploy/ProjetVrai.war/ parentPolicy=AFTER_BUT_JAVA_BEFORE [email protected]{DefaultDomain}} roots=[[email protected][path= context=vfsmemory://5hs4j5g-ahljra-h4wsmcy7-1-h4wsw19q-9y real=vfsmemory://5hs4j5g-ahljra-h4wsmcy7-1-h4wsw19q-9y], [email protected][path=ProjetVrai.war/WEB-INF/classes context=file:/C:/serveur/jboss-5.1.0.GA/jboss-5.1.0.GA/server/default/deploy/ real=file:/C:/serveur/jboss-5.1.0.GA/jboss-5.1.0.GA/server/default/deploy/ProjetVrai.war/WEB-INF/classes/], [email protected][path=ProjetVrai.war/WEB-INF/lib/commons-beanutils.jar context=file:/C:/serveur/jboss-5.1.0.GA/jboss-5.1.0.GA/server/default/deploy/ real=file:/C:/serveur/jboss-5.1.0.GA/jboss-5.1.0.GA/server/default/deploy/ProjetVrai.war/WEB-INF/lib/commons-beanutils.jar], [email protected][path=ProjetVrai.war/WEB-INF/lib/commons-collections.jar context=file:/C:/serveur/jboss-5.1.0.GA/jboss-5.1.0.GA/server/default/deploy/ real=file:/C:/serveur/jboss-5.1.0.GA/jboss-5.1.0.GA/server/default/deploy/ProjetVrai.war/WEB-INF/lib/commons-collections.jar], 

回答

0

所以,很显然你的EE环境中没有一个类没有。确保在你的战争中你有drools-compiler-.jar和jbpm-flow .jar 你可以提一下你使用的是哪个版本的JBPM吗?