网上很多流传着这样一种配置方式,我照着这样配置完成还是不能使用,这只是配置的一部分,因为我用了JBPM工作流..相应还需要修改修改里面的Java文件...调整了很长时间才搞通..
1.Liferay官方网站下载liferay-portal-jbpm-web-5.2.3.war,liferay-portal-servicemix-web-5.3.3.war或者liferay-portal-muel-web-4.3.2.war.(我用的是4.3.2,你下自已用的版本,不能错)
2.三个包都放到/webapps下面,liferay启动后会自动的解压,或者用WINRAR也可以解压。
3.webapps\ROOT\WEB-INF\classes\portal-ext.properties增加jbi.workflow.url=http://localhost:8080/servicemix-web/workflow或jbi.workflow.url=http://localhost:8080/mule-web/workflow注意端口号要和自已的相同。
4.如果要修改端口号那么还要修改webapps\mule-web\WEB-INF\mule-config.xml下<property name="url" value="http://localhost:8082/jbpm-web/servlet" />端口号;webapps\servicemix-web\WEB-INF\applicationContext.xml下<property name="url" value="http://localhost:8082/jbpm-web/servlet" />端口号。
5.webapps\jbpm-web\WEB-INF\classes\hibernate.cfg.xml,先择自已用到的数据库类型并配置, webapps\jbpm-web\WEB-INF\sql下面有各种数据库脚本,选择自已的导入库中。
第二部分:修改的文件;
After you have deployed following components (version 5.2.0.1) under liferay 5.2.3,
- workflow-portlet
- mule-web
- jbpm-web
please replace two classes
- mule-web
WEB-INF\classes\com\liferay\jbi\mule\util\URLTransformComponent.class
- workflow-portlet
WEB-INF\classes\com\liferay\workflow\service\impl\WorkflowDefinitionServiceImpl.class
and the workflow with jbpm should be ok.
-------
Please find the source code files in the attachement, corresponding to the classes in last mail.
- workflow-portlet
src\com\liferay\workflow\service\impl\WorkflowDefinitionServiceImpl.java
- mule-web
src\com\liferay\jbi\mule\util\URLTransformComponent.java
对应的Java类对应如下:
package com.liferay.jbi.mule.util;
import com.liferay.portal.kernel.util.Http;
import com.liferay.portal.kernel.util.HttpUtil;
import java.io.IOException;
import java.util.Map;
import javax.servlet.http.Cookie;
import org.mule.components.simple.LogComponent;
import org.mule.umo.UMOEventContext;
/**
* <a href="URLTransformComponent.java.html"><b><i>View Source</i></b></a>
*
* @author Charles May
*
*/
public class URLTransformComponent
extends LogComponent implements URLTransformService {
public String getUrlResult(Map parameters, String url) {
String xml = "<result />";
try {
//
// Method signature changed(add one Http.Auth) in new version.
// public static String URLtoString(
// String location, Cookie[] cookies, Http.Auth auth,
// Map<String, String> parts, boolean post)
//throws IOException {...}
//
//xml = HttpUtil.URLtoString(url, null, parameters, true);
xml = HttpUtil.URLtoString(url, null, null, parameters, true);
}
catch (Exception e) {
}
return xml;
}
public Object onCall(UMOEventContext context)
throws Exception {
super.onCall(context);
Map parameters = (Map)context.getTransformedMessage();
String url = (String)context.getMessage().getProperty("url");
return getUrlResult(parameters, url);
}
}
---------------------------------------------------------
package com.liferay.workflow.service.impl;
import com.liferay.documentlibrary.DuplicateDirectoryException;
import com.liferay.documentlibrary.NoSuchFileException;
import com.liferay.documentlibrary.service.DLServiceUtil;
import com.liferay.portal.PortalException;
import com.liferay.portal.SystemException;
import com.liferay.portal.kernel.util.GetterUtil;
import com.liferay.portal.kernel.util.StringPool;
import com.liferay.portal.model.CompanyConstants;
import com.liferay.portal.model.GroupConstants;
import com.liferay.portal.model.User;
import com.liferay.portal.service.ResourceLocalServiceUtil;
import com.liferay.workflow.NoSuchDefinitionException;
import com.liferay.workflow.model.WorkflowDefinition;
import com.liferay.workflow.service.base.WorkflowDefinitionServiceBaseImpl;
import java.util.Date;
/**
* <a href="WorkflowDefinitionServiceImpl.java.html"><b><i>View Source</i></b>
* </a>
*
* @author Brian Wing Shun Chan
*
*/
public class WorkflowDefinitionServiceImpl
extends WorkflowDefinitionServiceBaseImpl {
public WorkflowDefinition addDefinition(
String xml, boolean addCommunityPermissions,
boolean addGuestPermissions)
throws PortalException, SystemException {
return addDefinition(
xml, Boolean.valueOf(addCommunityPermissions),
Boolean.valueOf(addGuestPermissions), null, null);
}
public WorkflowDefinition addDefinition(
String xml, String[] communityPermissions,
String[] guestPermissions)
throws PortalException, SystemException {
return addDefinition(
xml, null, null, communityPermissions, guestPermissions);
}
public WorkflowDefinition addDefinition(
String xml, Boolean addCommunityPermissions,
Boolean addGuestPermissions, String[] communityPermissions,
String[] guestPermissions)
throws PortalException, SystemException {
// Deploy xml
User user = getUser();
long definitionId = GetterUtil.getLong(
workflowComponentService.deploy(xml));
// File
long companyId = user.getCompanyId();
String portletId = CompanyConstants.SYSTEM_STRING;
long groupId = GroupConstants.DEFAULT_PARENT_GROUP_ID;
long repositoryId = CompanyConstants.SYSTEM;
String dirName = "workflow/definitions";
String fileName = dirName + "/" + definitionId + ".xml";
long fileEntryId = 0;
String properties = StringPool.BLANK;
Date modifiedDate = new Date();
String[] tagsEntries = new String[0];
byte[] bytes = xml.getBytes();
try {
DLServiceUtil.addDirectory(companyId, repositoryId, dirName);
}
catch (DuplicateDirectoryException dde) {
}
//
// The method changed with signature
// public static void addFile(
// long companyId, String portletId, long groupId, long repositoryId,
// String fileName, long fileEntryId, String properties,
// Date modifiedDate, String[] tagsCategories, String[] tagsEntries,
// byte[] bytes)
// throws PortalException, SystemException {
// ...
// }
//
// DLServiceUtil.addFile(
// companyId, portletId, groupId, repositoryId, fileName, fileEntryId,
// properties, modifiedDate, tagsEntries, bytes);
//
DLServiceUtil.addFile(
companyId, portletId, groupId, repositoryId, fileName, fileEntryId,
properties, modifiedDate, null, tagsEntries, bytes);
// Resources
if ((addCommunityPermissions != null) &&
(addGuestPermissions != null)) {
addDefinitionResources(
user, definitionId, addCommunityPermissions.booleanValue(),
addGuestPermissions.booleanValue());
}
else {
addDefinitionResources(
user, definitionId, communityPermissions, guestPermissions);
}
return getDefinition(definitionId);
}
public void addDefinitionResources(
User user, long definitionId, boolean addCommunityPermissions,
boolean addGuestPermissions)
throws PortalException, SystemException {
ResourceLocalServiceUtil.addResources(
user.getCompanyId(), 0, user.getUserId(),
WorkflowDefinition.class.getName(), definitionId, false,
addCommunityPermissions, addGuestPermissions);
}
public void addDefinitionResources(
User user, long definitionId, String[] communityPermissions,
String[] guestPermissions)
throws PortalException, SystemException {
ResourceLocalServiceUtil.addModelResources(
user.getCompanyId(), 0, user.getUserId(),
WorkflowDefinition.class.getName(), definitionId,
communityPermissions, guestPermissions);
}
public WorkflowDefinition getDefinition(long definitionId)
throws PortalException, SystemException {
try {
long companyId = getUser().getCompanyId();
long repositoryId = CompanyConstants.SYSTEM;
String dirName = "workflow/definitions";
String fileName = dirName + "/" + definitionId + ".xml";
String xml = new String(
DLServiceUtil.getFile(companyId, repositoryId, fileName));
WorkflowDefinition definition =
(WorkflowDefinition)workflowComponentService.getDefinition(
definitionId);
definition.setXml(xml);
return definition;
}
catch (NoSuchFileException nsfe) {
throw new NoSuchDefinitionException();
}
}
}
这样修改后,应该就可以使用了..只需要自己写JBPM definition.xml 文件..工作流系统就可以使用了。
分享到:
相关推荐
- 安装Kaleo-web插件后,Liferay控制面板会出现与工作流相关的菜单,如“我的工作流任务”、“工作流配置”、“我的提交”和“工作流”。 2. **工作流配置**: - 添加工作流页面并选择XML定义文件来部署工作流。...
liferay 5.2.3 可實際用於建構 jbpm workflow portlet的 jbpm檔。 用這個檔案加上mule再參考網路上的設定文件,即可輕易的在5.2.3上完成workflow portlet的建置... mule檔太大,請在liferay網路上下載即可
1. **Liferay**:Liferay 是一个开源的企业级内容管理平台,它提供了一个可定制的数字体验平台,用于构建和管理网站、工作流应用、企业社交网络等。Liferay 支持多租户、单点登录(SSO)和复杂的用户权限管理。 2. ...
内容部分提到了几个关键概念,包括"MyWorkflowTasks"、"WorkflowConfiguration"、"MySubmissions"、"SingleApproverWorkflow"等,这些概念是Liferay工作流管理中的核心部分,涉及到用户交互、工作流配置、提交任务和...
Liferay、CAS(Central Authentication Service)和LDAP(Lightweight Directory Access Protocol)的集成配置是一项复杂的任务,尤其对于那些在IT领域中专注于身份验证和授权管理的研究者来说。以下将详细介绍如何...
cas服务端自定义数据库所需jar包,集成liferay6.2源码改动
【Liferay集成Activiti开发工程】是一个涉及到企业级工作流管理系统构建的主题,它结合了Liferay门户平台与Activiti流程引擎。Liferay是一款开源的企业级门户框架,它提供了丰富的功能,如内容管理、社交媒体整合、...
jbpm不仅是一个强大的工作流引擎,还是一个完整的业务流程管理解决方案,它使得开发人员能够轻松地在应用程序中集成复杂的业务流程。 1. **流程几个概念介绍** - **流程定义(Process Definition)**:流程定义是...
配置 Liferay 与 AD 的集成可以让组织利用现有的 AD 用户基础,实现单点登录(Single Sign-On, SSO)和其他身份管理功能。 在 Liferay 6.0.6 版本中配置 AD 需要以下步骤: 1. **了解 LDAP 和 AD**: Lightweight ...
总结来说,"struts2+liferay集成"涉及到的主要知识点包括:Liferay IDE和SDK的使用,Portlet的生命周期和开发,Struts2框架的配置和Action机制,以及Liferay服务API的调用。通过这个集成,开发者可以充分利用两者的...
【Liferay 门户集成CAS实现单点登录与应用系统集成】是将开源门户平台Liferay与中央认证服务(CAS)相结合,以实现用户在多个应用系统间的统一登录体验。Liferay是一个基于Java的企业级门户解决方案,它具备强大的...
Liferay是一款基于Java的开源企业门户平台,它提供了丰富的功能,包括内容管理、协作工具、工作流和个性化用户体验。Liferay 4.2.0版本是早期的一个稳定版本,尽管后来有更多更新,但它的基本架构和核心功能仍对...
通过这个文档,我们可以学习到Liferay如何存储和管理JBPM中的工作流实例、任务和相关数据,这对于理解Liferay中的工作流设计和实施至关重要。 其次,“深入学习:JFC SWING—JAVA 基础类组件集.pdf”可能会涉及...
Liferay是一款开源的企业级门户平台,而Activiti则是一个流行的工作流引擎,常用于实现BPM功能。本主题关注的是如何在Liferay7中集成Activiti BPM,并通过上传文件来部署流程模板。 首先,我们要理解Liferay7和...
在实际的BPM集成开发过程中,Liferay和Activiti这两个异构的系统之间,用户、组的同步需求非常重要,用来实现签收组的概念,比如指定签收组、会签、抢签都需要用到。 Activiti可以通过自定义实现SessionFactory,...
Liferay是一款开源的企业级门户平台,它提供了内容管理、社交网络、工作流等功能。而Struts 2则是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,用于构建可维护性和可扩展性高的应用。将两者集成,...
总之,Liferay与LDAP集成是一个涉及Liferay系统配置、LDAP服务器安装和管理,以及两者之间通信配置的复杂过程。掌握这些知识点,可以帮助实现用户身份管理和单点登录功能,对于提升企业门户的安全性和管理效率有着...
【Liferay 5.1.2 配置 Oracle 10G 数据库操作详解】 Liferay 是一款开源的企业级门户平台,它默认使用 HSQLDB 作为内置数据库。然而,在某些场景下,用户可能需要将数据库迁移至更强大的 Oracle 10G 数据库。这个...
Liferay6.1.1 工作流war包kaleo-web,自带的无法使用,必需手动安装,放到deploy下部署