您好,欢迎来到年旅网。
搜索
您的当前位置:首页让自己的方法随windchill服务启动

让自己的方法随windchill服务启动

来源:年旅网
让自己的方法随windchill服务启动---添加windchill客制化服务

通过添加Windchill客制化服务,可以让自己业务相关的对象在Windchill启动时进行初始化。如定制数据缓存,初始化静态变量,从而减少用户访问数据库的频率,提高访问相关数据的速度。 废话不多说,直接上代码,照着下面的步骤一步步来就ok。 /*************************************************************/ 第一步:定义自己的业务接口ServiceInterface ,用来存放一些静态变量,方便其实现类的使用,我在这里将静态变量定义到了实现类中,所以只需写一个空的接口即可,代码如下: Java代码 2. /** 3. * 4. *

Description:

5. * @author: 6. * @time: 2010-4-30 下午05:03:35 7. * @version 1.0 8. */ 9. public interface ServiceInterface { 10. 11. //##begin user.attributes preserve=yes 12. //##end user.attributes 13. 14. //##begin static.initialization preserve=yes 15. //##end static.initialization 16. 17. //##begin user.operations preserve=yes 18. //##end user.operations 19. } 1. package com.wcservice; /*************************************************************/ 第二步,定义该接口的第一个实现类ServiceInterfaceImp ,同时需要实现wt.method.RemoteAccess类,这个类里的相关代码是无需修改的。 Java代码 2. 3. import java.io.Serializable; 4. import java.lang.String; 5. import wt.method.RemoteMethodServer; 6. import wt.services.Manager; 7. import wt.services.ManagerServiceFactory; 8. import wt.util.WTException; 9. 10. /** 11. * 12. *

Description:

1. package com.wcservice; 13. * @author: 14. * @time: 2010-4-30 下午04:57:53 15. * @version 1.0 16. */ 17. public class ServiceInterfaceImp implements wt.method.RemoteAccess, 18. ServiceInterface, Serializable { 19. 20. // --- Attribute Section --- 21. 22. static final boolean SERVER = RemoteMethodServer.ServerFlag; 23. 24. private static final String FC_RESOURCE = \"wt.fc.fcResource\"; 25. 26. private static final String CLASSNAME = ServiceInterfaceImp.class.getName(); 27. 28. // --- Operation Section --- 29. /** 30. * @return Manager 31. * @exception wt.util.WTException 32. */ 33. private static Manager getManager() throws WTException { 34. Manager manager = ManagerServiceFactory.getDefault().getManager( 35. ServiceInterface.class); 36. if (manager == null) { 37. Object[] param = {CLASSNAME}; 38. throw new WTException(FC_RESOURCE, 39. wt.fc.fcResource.UNREGISTERED_SERVICE, param); 40. } 41. return manager; 42. } 43. } 第三步,定义客制化服务启动和关闭的类MyService。 //该类需要继承wt.services.StandardManager类,并实现我们刚才定义的接口ServiceInterface,详细注释见代码: Java代码 1. package com.wcservice; 2. 3. import java.io.Serializable; 4. 5. import wt.services.ManagerException; 6. import wt.services.StandardManager; 7. import wt.util.WTException; 8. /** 9. * 10. *

Description: 定义windchill客制化服务启动和停止的方法,同时定义创建该类对象的方法

11. * @author: 12. * @time: 2010-4-30 下午05:18:26 13. * @version 1.0 14. */ 15. public class MyBusiness extends StandardManager implements ServiceInterface,Serializable { 16. 17. // --- Operation Section --- 18. 19. /** 20. * 返回MyBusiness的对象,并调用父类StandardManager的initialize()方法进行初始化,该方法内容无需修改,方法名格式为new+你的类名 21. */ 22. public static MyBusiness newMyBusiness() throws WTException { 23. System.out.println(MyBusiness.class.getName()+\".newMyBusiness(),MyBusiness对象初始化完毕。\"); 24. MyBusiness instance = new MyBusiness(); 25. instance.initialize(); 26. return instance; 27. } 28. 29. // ##begin user.operations preserve=yes 30. protected void performStartupProcess() throws ManagerException { 31. //write your business here,while windchill start,it execute 32. System.out.println(MyBusiness.class.getName()+\".performStartupProcess()方法执行,windchill服务正在启动!\"); 33. } 34. 35. protected void performShutdownProcess() throws ManagerException { 36. //write your business here,while windchill stop,it execute 37. System.out.println(MyBusiness.class.getName()+\".performShutdownProcess()方法执行,windchill服务正在停止!\"); 38. } 39. } 第四步,将class文件copy到codebase对应目录下,然后打开/site.xconf增加如下内容: Xml代码 1. 2. 3. 修改完site.xconf文件,windchill shell中执行如下命令: Java代码 1. xconfmanager -p

第五步,重启windchill MethodServer,观察MethodServer窗口,可以看到:

先执行MyBusiness类的初始化方法newMyBusiness(),后执行performStartupProcess()方法。 然后关闭MethodServer的时候,可以看到MyBusiness类的performShutdownProcess()方法执行。

按照我的上述步骤进行,就算你是个windchill超级新手,也会成功。原理我就不在这里说了,大家有空可以多看看windchill的api。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务