重用Teamcenter RCP插件包,替代SOA重复开发

       

背景: 最近有个开发需求,需要同时在Teamcenter RCP客户端和服务端部署同一套代码,以分别实现客户端菜单手动触发以及服务端值守服务自动触发定制功能的目的。为赶进度,最终交付给客户的是两套代码,客户端RCP插件包和服务端SOA Jar包。

问题:那么可不可以直接重用RCP包,在服务端作为值守服务运行呢?

解决:经实验可以重用三个Teamcenter RCP核心包,制作自己的“小客户端”:

                com.teamcenter.rac.aifrcp

                com.teamcenter.kernel

                com.teamcenter.rac.util

        “小客户”本质上是Teamcenter RCP富客户端的缩小版,所以具备客户端的一切特性,通过这个小客户端可以:

        1)运行为RCP客户端开发的插件包,无需更改,无需重新打包

        2)调用Teamcenter客户端的原生模块,也无需反编译或更改

        3)同样支持RCP插件扩展、属性文件配置等等

方法:制作“小客户端”的过程

       1、设置target platform为TC

 2、新建RCP工程,注意设置Rich Client Application 为 yes

 3、添加依赖

4、添加登录TC的代码:打开Application类,为start方法添加登录代码

public Object start(IApplicationContext context) {
		// 调用Teamcenter登录窗体
		IPortalService var2 = (IPortalService) OSGIUtil.getService(
				AifrcpPlugin.getDefault(), IPortalService.class);
		if (var2 == null) {
			return IApplication.EXIT_OK;
		} else {
			var2.setCommandLineArgs((String[]) context.getArguments().get(
					"application.args"));
			if (!var2.login()) {
				return IApplication.EXIT_OK;

			}
		}
		// 启动主窗体
		Display display = PlatformUI.createDisplay();
		try {
			int returnCode = PlatformUI.createAndRunWorkbench(display,
					new ApplicationWorkbenchAdvisor());
			if (returnCode == PlatformUI.RETURN_RESTART) {
				return IApplication.EXIT_RESTART;
			}
			return IApplication.EXIT_OK;
		} finally {
			display.dispose();
		}
	}

 5、新建Production配置文件

6、设置application 依赖,勾选最下方的Include optional dependencies...,点击右侧Add Required Plug-ins

 7、导出Application:Eclipse Product export wizard

8、将tc_root/portal/registry目录拷贝过来

 9、enjoy !

Eclipse工程源文件:

 Teamcenter11最小客户端示例-管理软件文档类资源-CSDN文库

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值