`
yinxvxv
  • 浏览: 51729 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

用Java web start来发布Jbpm(一个基于RCP的应用)

阅读更多

一、 将jbpm变为基于RCP的应用
开源的jbpm一个eclipse中plugin的项目不是RCP项目。所以要先将jbpm变为一个RCP独立的应用程序。
将jbpm导入eclipse
从http://labs.jboss.com/jbossjbpm/jpdl_downloads/上下载jbpm,解压;
在eclipse下导入工程,有两个工程要导入,如图中的两个文件夹,分别是org.jbpm.gd.jpdl文件夹和org.jbpm.gd.jpdl两个文件夹

导入好以后在eclipse中的形态应如图


在plugin.xml文件中增加对"org.eclipse.core.runtime.applications"的扩展
先在org.jbpm.gd.jpdl中新建一个包org.jbpm.gd.jpdl.rcp,在下面建五个类

package org.jbpm.gd.jpdl.rcp;

import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;

/**
 * The activator class controls the plug-in life cycle
 */
public class Activator extends AbstractUIPlugin {

	// The plug-in ID
	public static final String PLUGIN_ID = "org.jbpm.gd.jpdl.rcp";

	// The shared instance
	private static Activator plugin;
	
	/**
	 * The constructor
	 */
	public Activator() {
	}

	/*
	 * (non-Javadoc)
	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
	 */
	public void start(BundleContext context) throws Exception {
		super.start(context);
		plugin = this;
	}

	/*
	 * (non-Javadoc)
	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
	 */
	public void stop(BundleContext context) throws Exception {
		plugin = null;
		super.stop(context);
	}

	/**
	 * Returns the shared instance
	 *
	 * @return the shared instance
	 */
	public static Activator getDefault() {
		return plugin;
	}

	/**
	 * Returns an image descriptor for the image file at the given
	 * plug-in relative path
	 *
	 * @param path the path
	 * @return the image descriptor
	 */
	public static ImageDescriptor getImageDescriptor(String path) {
		return imageDescriptorFromPlugin(PLUGIN_ID, path);
	}
}

 

package org.jbpm.gd.jpdl.rcp;

import org.eclipse.equinox.app.IApplication;
import org.eclipse.equinox.app.IApplicationContext;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.PlatformUI;

/**
 * This class controls all aspects of the application's execution
 */
public class Application implements IApplication {

	/* (non-Javadoc)
	 * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
	 */
	public Object start(IApplicationContext context) throws Exception {
		Display display = PlatformUI.createDisplay();
		try {
			int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
			if (returnCode == PlatformUI.RETURN_RESTART)
				return IApplication.EXIT_RESTART;
			else
				return IApplication.EXIT_OK;
		} finally {
			display.dispose();
		}
		
	}

	/* (non-Javadoc)
	 * @see org.eclipse.equinox.app.IApplication#stop()
	 */
	public void stop() {
		final IWorkbench workbench = PlatformUI.getWorkbench();
		if (workbench == null)
			return;
		final Display display = workbench.getDisplay();
		display.syncExec(new Runnable() {
			public void run() {
				if (!display.isDisposed())
					workbench.close();
			}
		});
	}
}

 

package org.jbpm.gd.jpdl.rcp;

import org.eclipse.jface.action.IMenuManager;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.application.ActionBarAdvisor;
import org.eclipse.ui.application.IActionBarConfigurer;

public class ApplicationActionBarAdvisor extends ActionBarAdvisor {

    public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
        super(configurer);
    }

    protected void makeActions(IWorkbenchWindow window) {
    }

    protected void fillMenuBar(IMenuManager menuBar) {
    }
    
}

 

 

package org.jbpm.gd.jpdl.rcp;

import org.eclipse.ui.application.IWorkbenchConfigurer;
import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
import org.eclipse.ui.application.WorkbenchAdvisor;
import org.eclipse.ui.application.WorkbenchWindowAdvisor;

public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {

	private static final String PERSPECTIVE_ID = "org.jbpm.gd.jpdl.JpdlPerspective";

    public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
        return new ApplicationWorkbenchWindowAdvisor(configurer);
    }

	public String getInitialWindowPerspectiveId() {
		return PERSPECTIVE_ID;
	}
	
	public void initialize(IWorkbenchConfigurer configurer) {   
        super.initialize(configurer);   
    }      
}

 

package org.jbpm.gd.jpdl.rcp;

import org.eclipse.swt.graphics.Point;
import org.eclipse.ui.application.ActionBarAdvisor;
import org.eclipse.ui.application.IActionBarConfigurer;
import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
import org.eclipse.ui.application.WorkbenchWindowAdvisor;

public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {

    public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
        super(configurer);
    }

    public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
        return new ApplicationActionBarAdvisor(configurer);
    }
    
    public void preWindowOpen() {
        IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
        configurer.setInitialSize(new Point(1024, 768));
        configurer.setShowCoolBar(false);
        configurer.setShowStatusLine(false);
        configurer.setTitle("JBPM");
    }
}

 

 

打开org.jbpm.gd.jpdl中的plugin.xml,选择名为extensions的tab项,在Add中加入org.eclipse.croe.runtime.applications,并对其做如图配置,或者在plugin.xml代码中加入:


为项目增加product Configuration配置,并导出应用程序
选择org.jbpm.gd.jpdl工程,点右键New/Other/Product Configuration
增加一个名为org.jbpm.gd.jpdl.product的文件,在overview页中,为产品配置name为jbpm,在produt Id栏中点击new,设置name为org.jbpm.gd.jpdl,finish,在product configuration里选择plug-ins 保存。


然后点击product configuration进入configuration页,点击Add在弹出框里选择org.jbpm.gd.jpdl,然后点击add required plug-ins按钮。保存。


product Configuration 的配置完成,可以将工程导出为应用程序了。
导出程序
选择org.jbpm.gd.jpdl工程,点右键Export,在弹出框中选择Eclipse product,next,选择你建的product configuration和导出的目录,finish,工程导出完成。在你导出的目录里,你可以找到eclipse.exe文件,双击可以直接打开应用程序。

 

 

 

 

 

 

 

 

 

 

分享到:
评论
5 楼 kukujerry 2008-08-11  
您图中的那两个文件在jbpm-jpdl-3.2.2\designer\eclipse\plugins\org.jbpm.gd.jpdl_3.1.0.SP1目录下的ui。jar包中,不是以工程的形式出现的,郁闷死了,怎么回事啊?是不是我方法有问题,麻烦指点下。谢谢。
4 楼 kukujerry 2008-08-11  
我试了啊,3.1.4和3.2.2用eclipse导入工程没有那两个文件夹啊?能不能详细说一下怎么导入那两个工程啊?
3 楼 yinxvxv 2008-08-05  
用的也是3.2.2啊
2 楼 kukujerry 2008-07-25  
请问JBPM下什么版本的啊?我下的是3.2.2,没有那两个工程啊?
1 楼 sheva.wen 2008-05-01  
收藏,等着更新

相关推荐

    用java web start来发布jbpm(三)

    在本篇博客“用java web start来发布jbpm(三)”中,博主将深入探讨如何使用Java Web Start来发布JBPM(Business Process Management System,业务流程管理系统)。 JBPM是一个开源的工作流和业务流程管理框架,它...

    jbpm5 web整合例子

    【jbpm5 web整合例子】是一个关于如何将JBPM5工作流引擎与Web应用程序整合的实践项目,适合那些想要在Web环境中使用业务流程管理(BPM)功能的开发者。JBPM5是一个开源的工作流和业务规则管理系统,它提供了一整套...

    JBPM5基于tomcat web的应用

    这个项目是一个基于Web的JBPM5.2实例,特别设计用于在Apache Tomcat服务器上运行。理解这个应用的关键在于熟悉JBPM5的核心功能以及如何在Tomcat环境下配置和部署。 首先,JBPM5提供了以下核心功能: 1. **工作流...

    JBPM web(SSH+JBPM) 例子

    【JBPM web(SSH+JBPM)例子】是一个基于Java技术栈实现的工作流管理系统示例,其中SSH代表Spring、Struts和Hibernate这三个流行的Java企业级开发框架的组合,而JBPM则是Business Process Management(业务流程管理...

    jbpm工作流web应用

    **jbpm工作流web应用** 是一个基于Java的业务流程管理(BPM)系统,它提供了全面的工作流解决方案,能够帮助开发者构建可扩展且灵活的Web应用程序。jbpm结合了Eclipse开发环境、Tomcat应用服务器和MySQL数据库,形成...

    Jbpm4提一个web项目

    对于"Jbpm4Web"这个压缩包,很可能包含了一个基于JBPM4的工作流管理系统的web应用示例。源码可能包括了前端的HTML、CSS和JavaScript文件,以及后端的Java代码,用于与JBPM4服务器交互。开发者可以通过研究这些源码,...

    jbpm designer (基于web的图形化流程设计工具)

    jbpm designer (基于web的图形化流程设计工具)

    jbpm4web-JBPM4的一个web版本的Demo

    "jbpm4web"是基于JBPM4开发的一个Web版本的示例项目,旨在帮助学习者更直观地理解和应用JBPM4的核心功能。这个Demo涵盖了业务流程的创建、发起、驳回和删除等关键操作,为初学者提供了一个实践平台。 1. **流程设计...

    jBPM4工作流应用开发指南.pdf

    本指南由胡奇编写,旨在为开发者提供一个全面的参考,帮助他们快速学习和掌握使用jBPM4进行工作流应用的开发。 ### 标题知识点: - **工作流应用开发:** 工作流应用开发是指通过建立工作流模型,使用计算机程序来...

    jbpm-2.0-beta1.zip_java 工作流引擎_jbpm_jbpm-demo_工作流_工作流引擎

    除了核心引擎,jbpm还提供了丰富的API和工具集,包括一个基于Web的流程设计器,使得非技术背景的业务人员也能参与到流程的设计中来。此外,jbpm还支持与其他Java企业级框架如Spring的集成,方便在现有企业应用中嵌入...

    jbpm3.12 web

    【jbpm3.12 web】是一个关于Jbpm3.12版本在Web环境中的应用和集成的专题。Jbpm(Java Business Process Management)是一个开源的工作流管理系统,主要用于处理业务流程自动化和管理工作流。这个压缩包文件可能包含...

    我写的一个jbpm实例

    综上所述,"我写的一个jbpm实例"是一个全面展示jbpm功能和SSH框架集成的应用案例,涵盖了流程设计、部署、执行、监控等多个方面。通过学习这个实例,读者可以加深对jbpm的理解,为实际项目开发提供参考。

    jbpm的一个实例

    JBPM是一个扩展性很强的工作流系统,百分百用JAVA语言开发,持久层采用Hibernate实现,理论上说,只要Hibernate支持的数据库JBPM都支持。同时它还能被部署在任何一款JAVA应用服务器上 JBPM的工程文件,大家可以到...

    jbpm4.3 工作流实例 java

    - **jbpm4web**:可能是一个基于jbpm4.3的工作流Web应用程序示例,它演示了如何在Web环境中使用jbpm,并可能包含了SSH框架的集成。 - **文件内容**:这个压缩包可能包含Web应用的源代码、配置文件、流程定义文件...

    jbpm_websale.rar_JSF_java JBPM_jbpm_jbpm websale_websale jb

    【jbpm_websale.rar】是一个包含JBPM(Business Process Management)网上销售示例的压缩包,这个实例对于初学者理解和掌握JBPM技术及其在Java Web应用中的实践非常有帮助。该实例结合了JSF(JavaServer Faces)前端...

    jbpm-console.rar_Java 企业OA_java console_jbpm_jbpm-side_工作流

    这个“jbpm-console.rar”压缩包包含了一个基于Java的企业级OA(Office Automation)系统的源码,该系统利用jbpm来实现工作流功能。下面将详细解释其中涉及的关键知识点: 1. **Java企业OA系统**:OA系统是一种企业...

    jbpm4.0三个例子

    总结来说,jbpm4.0三个例子为Java开发者提供了一个很好的学习平台,通过实际操作可以深入理解jbpm4的工作原理和应用方式。如果你在MyEclipse 7.5或Eclipse 3.42环境中遇到问题,如库文件冲突,可以参考描述中的建议...

    基于WEB的JBPM实例

    【基于WEB的JBPM实例】是一个综合性的项目,它展示了如何在Web环境中集成并使用JBPM(Java Business Process Management)框架。JBPM是一款开源的工作流和业务流程管理系统,旨在帮助企业设计、执行、监控和优化业务...

    JBPM工作流应用开发文档

    JBPM(java Business Process Management)是一个基于JavaEE的轻量级工作流管理系统,旨在支持企业级的流程定义、部署、执行和管理。作为JBoss的一个子项目,它与其他优秀开源项目如Seam、Drools和Hibernate紧密集成...

Global site tag (gtag.js) - Google Analytics