当前位置: 首页 > 知识库问答 >
问题:

将Activiti与JSF集成

江文斌
2023-03-14

我试图从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();
        }
    }

}

引擎总是以null返回,我读到activiti.cfg.xml文件应该在类路径中,我已经把文件放在web-inf/class下,但是引擎仍然返回null,这意味着激活不能初始化引擎,有什么想法吗?

共有1个答案

艾晋
2023-03-14

添加此

@Inject
 private ProcessEngine engine;

如果希望在容器内运行CDIBean,则不允许使用new关键字。相反,您需要注入bean,容器完成其余工作,也就是说,容器负责管理bean的生命周期:它创建实例;它摆脱了它。那么,如果不能调用构造函数,如何初始化bean呢?好的,容器在构造实例之后和销毁实例之前为您提供了一个句柄。

 类似资料:
  • 问题内容: 我有一个主要使用Richfaces的JSF应用程序。我想介绍一个功能更丰富的网格控件,例如基于jQuery的jqgrid。是否可以从JSF支持bean获得JSON数据?如果没有,是否有替代方法? 问题答案: 这里可能有几个选择。 Bean方法可以返回一个字符串,它只是一个JSON字符串 您可以使用JsonLib将Java对象转换为Json。 使用其他Servlet服务网格请求 我将推荐

  • 我正在尝试将JSF Web应用程序与Spring Security集成。 目前我正在通过一种方法登录:在此方法中进行身份验证并根据用户重定向到目标页面。 登录页面(Login.xhtml): loginManagedBean。autenticar()(身份验证和重定向的方法): 如何替换此页面和方法以使用SpringSecurity? SpringSecurityConfig:

  • 问题内容: Environment : Tomcat 8 Spring Boot 1.5 JSF 2.2 Apache MyFaces Spring MVC Code : 我正在Servlet 3.0环境中集成Spring Boot和JSF 2.2。 配置类: JSFConfig.java - Config for JSF. Spring Boot Main Class : Managed Bea

  • 环境: JSF 2.2 Apache MyFaces Spring MVC 配置类: jsfconfig.java-Config for JSF。 Spring Boot主类: 托管Bean: java-用于JSF的托管Bean Facelets: 1)当我在。2)使用用户输入的值设置。3)但为空。4)这是否意味着Spring和JSF没有集成?我还注册了 我还尝试从userbean.java中删除

  • 我从官方提供的. WAR文件中运行了以下Activiti 6应用程序。已经成功地将这些部署到我的localhost activiti应用程序-http://localhost:8080/activiti-管理员//li> 活动管理员-http://localhost:8080/activiti-管理员//li> 活动Rest-http://localhost:8080/activiti-Rest/

  • 我已经根据https://www.activiti.org/migration.html的指南处理了从5.21.0到6.0.0的迁移活动(我更新了文件以设置activiti5CompatibilityEnabled和activiti5CompatibilityHandlerFactory 并将Activiti5-Compatibility-6.0.0.jar、Activiti5-Engine-6.