/* * edit by shyang * 该文件演示将自己写的程序,在Shell里面单独执行时,将打印信息输出到method server中 * 这对于输出日志很有用,不然只能自己单独写日志 * */ package ext; import wt.method.RemoteMethodServer; import java.io.IOException; import java.io.Serializable; public class Loginms implements wt.method.RemoteAccess, Serializable{ public static void main(String args[]){ /* *调用invoke方法时,如果不是调用的是非静态类,this是不可以用的, *所以请先声明一个示例,然后在普通方法doSomething中调用 */ Loginms loginms= new Loginms(); loginms.doSomething("Test if can send message to MS"); System.exit(0); } public void doSomething(String arg){ Class argTypes[] = {String.class}; Object argsValues[] = {arg}; try{ /* * invoke请参考API,里面有详细描述 */ RemoteMethodServer remotemethodserver = RemoteMethodServer.getDefault(); remotemethodserver.setUserName("wcadmin"); remotemethodserver.setPassword("windchill"); //静态方法 remotemethodserver.invoke("doStaticMethod", "ext.Loginms", null, argTypes, argsValues); //非静态方法 remotemethodserver.invoke("doCommonMethod", null, this, argTypes, argsValues); } catch (java.rmi.RemoteException re) { System.out.println(">>>>>>There is somthing wrong!"); re.printStackTrace(); } catch (java.lang.reflect.InvocationTargetException ite) { System.out.println(">>>>>>There is somthing wrong!"); ite.printStackTrace(); } } //调用的方法,返回值必须是Boolean型的,其他类型不可以执行 //自己其他的方法,都可以从这里调用 public static Boolean doStaticMethod(String oo){ System.out.println(">>>>>>>>>>Success in Static Method!>>>> " + oo); return new Boolean(true); } public Boolean doCommonMethod(String oo){ System.out.println(">>>>>>>>>>Success in Common Method!>>>> " + oo); return new Boolean(true); } }