我试图发信号通知workflowInstance
转到kaleo工作流程单一批准工作流程定义的下一个状态。
所以现在当我尝试调用WorkflowInstanceManagerUtil
类的任何方法时,它会给出UnsupportedOperationException
。
并且WorkflowInstanceManagerUtil
类方法的任何方法都在内部调用WorkflowInstanceManagerProxyBean
方法,并且具有空实现和
并且我能够看到所有方法默认抛出UnsupportedOperationException
本身。
所以我想我在这里缺少一些东西来创建它的子类对象。因此,如果在调用WorkflowInstanceManagerUtil
类方法之前错过了某些内容,请告诉我。
此外,我的应用程序中还没有kaleo类,但这些类在DB中可用
例如:kaleoinstance表在数据库中可用,但KaleoInstance
类在我的应用程序中不可用。我猜kaleo工作流程应用程序是通过从市场的购买窗口下载应用程序单独部署的。
奥拉夫:我直接通过创建由蚂蚁" war"生成的战争来部署我的portelt战争。 liferay sdk插件的命令。
这是我从一个州过渡到另一个州的代码
首次使用此代码启动kaleo工作流程
WorkflowHandlerRegistryUtil.startWorkflowInstance(
sheet.getCompanyId(), sheet.getGroupId(), sheet.getUserId(),
sheet.class.getName(), sheet.getsheetId(), sheet,
serviceContext);
从下次开始,应使用以下方法转换状态
public void transitState(Sheet sheet, String state, ServiceContext serviceContext)
throws com.liferay.portal.kernel.exception.PortalException,
com.liferay.portal.kernel.exception.SystemException {
Map<String, Serializable> workflowContext= new HashMap<String, Serializable>();
workflowContext.put(WorkflowConstants.CONTEXT_USER_ID, sheet.getUserId());
workflowContext.put(WorkflowConstants.CONTEXT_ENTRY_CLASS_PK, sheet.getSheetId());
workflowContext.put("serviceContext", serviceContext);
WorkflowInstanceLink workflowInstanceLink = WorkflowInstanceLinkLocalServiceUtil.getWorkflowInstanceLink(sheet.getCompanyId(), sheet.getGroupId(), sheet.class.getName(), sheet.getSheetId());
WorkflowInstance workflowInstance=WorkflowInstanceManagerUtil.getWorkflowInstance(sheet.getCompanyId(),workflowInstanceLink.getWorkflowInstanceId());
WorkflowInstanceManagerUtil.signalWorkflowInstance(sheet.getCompanyId(), sheet.getUserId(), workflowInstanceLink.getWorkflowInstanceId(), state, workflowInstance.getWorkflowContext());
}
答案 0 :(得分:0)
这完全是我的坏事。 kaleo在我当地没有正确部署。 kaleo-web模块存在于tomcat / webapps中,但我不知道它是如何自动安装的,我没有在我的项目中找到任何依赖项来将kaleo-web模块添加到我的项目中。但不知何故,该文件夹存在于我的webapps文件夹中。 所以我刚删除了那个旧版本并从我的应用程序的apps-store选项卡重新安装,所以现在它正常工作。
谢谢奥拉夫。