Alfresco:快速部署workflow和model

如何在Alfresco中快速部署workflow和model,避免频繁地重启tomcat?以Alfresco 4.2.e Community版本为例,Alfresco Repository(http://localhost:8080/alfresco)中有两个console页面实现快速部署workflow和model,分别是http://localhost:8080/alfresco/faces/jsp/admin/workflow-console.jsp和http://localhost:8080/alfresco/faces/jsp/admin/repoadmin-console.jsp。

这里说一下在worfkow-console中部署workflow。打开workflow-console,首先显示是help内容,详述了可以用的各种命令。“show definitions all”可以查看所有已经部署的workflow及历史版本。“deploy <engine> <definitionClassPath>”用于部署workflow,例如“deploy activiti alfresco/workflow/helloWorld.bpmn20.xml”。要注意的是workflow可以重复部署,每部署一次就会产生一个版本,可以用“show definitions all”查看所有版本,版本太多的时候可能会影响系统性能。系统默认会选择最新版本的workflow来使用,也就是说旧版本已经没用了,这时候就要注意卸载旧版本的workflow。卸载workflow可以使用“undeploy definition <workflowDefId>”,“<wokflowDefId>”可以使用命令“show definitions all”来查看,例如“undeploy definition activiti$activitiAdhoc:10:3904”。如果workflow不再使用,可以通过命令“undeploy definition name <workflowName>”来卸载workflow的所有版本,例如“undeploy definition name activiti$activitiAdhoc”。有时候卸载会显示失败,那是因为有些旧版本workflow仍有任务在执行中。

再来说一下在repoadmin-console部署model。打开repoadmin-console,首先显示的也是help内容。“show models”可以看到已经部署的model,不过我在Alfresco 4.2.e Community中使用此命令时无法查看那些通过设置bootstrap-context.xml来部署的model。可以用命令“deploy model <fileClassPath>”来部署model,例如“deploy model alfresco/workflow/workflowModel.xml”。model不像workflow那样多个版本同时存在,始终只保存最新的版本。使用“undeploy model <modelFileName>”卸载model,“<modelFileName>”可以使用命令“show models”来查看,例如“undeploy model workflowModel.xml”。

题外话,说一下workflow的另一种部署方式——设置bootstrap-context.xml。tomcat启动时会加载bootstrap里面的内容,可以将workflow或这model设置在其中。在bootstrap内可以看到下面的内容:

<bean id="workflowBootstrap" parent="workflowDeployer">
        <property name="workflowDefinitions">
            <list>
                <!-- Adhoc workflow definition -->
                <props>
                    <prop key="engineId">jbpm</prop>
                    <prop key="location">alfresco/workflow/adhoc_processdefinition.xml</prop>
                    <prop key="mimetype">text/xml</prop>
                    <prop key="redeploy">false</prop>
                </props>
                ...
            </list>
        </property>
        <property name="models">
            <list>
                <value>alfresco/workflow/workflowModel.xml</value>
                ...
            </list>
        </property>
        <property name="labels">
            <list>
                <value>alfresco/workflow/workflow-messages</value>
                ...
            </list>
        </property>
</bean>

注意workflow的redeploy属性,redeploy=true时,每次启动tomcat都会重新部署,这样就会产生很多版本的workflow,所以如果在bootstrap上设置了workflow,最好将redeploy设置为false。

猜你喜欢

转载自ethan-lu.iteye.com/blog/2275089