與JSF

2014-10-12 23 views
1

想從JSF與JSF

@ManagedBean(name = "activitiProcess") 
@ViewScoped 
public class ActivitiProcess implements Serializable { 

    private String filename = "D:/WORKSPACE/activiti1/src/main/resources/diagrams/MyProcess.bpmn"; 

    public ActivitiProcess() { 

    } 

    public void startProcess() { 

     System.out.println("hello world"); 
     try { 

      ProcessEngine engine = ProcessEngines.getDefaultProcessEngine(); //returns null 


      RepositoryService repositoryService = engine.getRepositoryService(); 
      repositoryService.createDeployment().addInputStream("myProcess.bpmn20.xml", new FileInputStream(filename)).deploy(); 
      RuntimeService runtimeService = engine.getRuntimeService(); 

      ProcessDefinition definition = engine.getRepositoryService().createProcessDefinitionQuery().processDefinitionKey("myProcess").singleResult(); 

      FormService formService = engine.getFormService(); 
      // List<FormProperty> formList = formService.getStartFormData(definition.getId()).getFormProperties(); 

      Map<String, String> formProperties = new HashMap<String, String>(); 
      /* use the jsf variable instead */ 
      formProperties.put("filePath", "D://somePath"); 
      formService.submitStartFormData(definition.getId(), formProperties); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

} 

發動機總是返回爲空,我讀到了activiti.cfg.xml文件應該在類路徑開始的Activiti引擎集成Activiti的,我已經把該文件在web-inf/classes下但仍然引擎返回null,這意味着activiti無法初始化引擎,有什麼想法?

+0

它需要任何數據庫屬性文件嗎? – Leo 2014-10-12 08:49:56

+0

不是必須的,但即便如此,現在用的是相同的配置在一個獨立的Activiti的應用和它的正常工作 您可以檢查 http://forums.activiti.org/content/using-activiti-without-spring – 2014-10-12 08:52:34

回答

1

,如果你想運行一個CDI Bean的容器內添加此

@Inject 
private ProcessEngine engine; 

,您不允許使用new關鍵字。相反,你需要注入的bean和容器是否 休息,這意味着,該容器是一個負責管理bean的生命週期:它創建的實例;它擺脫它。那麼如果你不能調用構造函數,你如何初始化一個bean?那麼,容器在構造一個實例之後並在銷燬它之前給你一個句柄。