windchill开发之远程方法调用

windchill开发之远程方法调用

来源:原创 作者:云淡天晴 时间:2008-10-19 
       在windchill的开发过程中不可避免要用到RMI远程方法调用,什么是远程方法调用,可以查看java中的基本概念。在windchill开发过程中,

原理与以前在java中的一样,但是方法却有说区别。在windchill中被调用的方法运行在MethodServer端,如果有输出可以在MethodServer

中看到。

    在什么样的情况下用到远程方法调用呢?通常在windchill中创建对象,修改对象,删除对象的时候我们必须用RMI,在查询对象过程中有可能

会用到RMI,如果不知道什么时候用,也不要紧,代码出错会有非常明显的提示。注意在工作流中调用的时候不需要再用RMI,因为工作流本来就

是运行在服务器端。举一RMI例子。

  import java.lang.reflect.InvocationTargetException;
import java.rmi.RemoteException;
import wt.method.RemoteMethodServer;

public class Demo5  implements wt.method.RemoteAccess
{

 /**
  * 代码比较简单,这里就不做详细注释了
  * @param args
  * @throws InvocationTargetException
  * @throws RemoteException
  */
 public static void main(String[] args) throws RemoteException, InvocationTargetException
 {
  // TODO Auto-generated method stub
  RemoteMethod("这里是可以探讨java基础与windchill 9 的地方");
 }

 public static void RemoteMethod(String msg) throws RemoteException,
   InvocationTargetException
 {
  String CLASSNAME = (Demo5.class).getName();
  Class argTypes[];
  Object svrArgs[];
  argTypes = (new Class[]
  { String.class});
  svrArgs = (new Object[]
  { msg});
  RemoteMethodServer.getDefault().invoke("pirntMsg", CLASSNAME, null, argTypes, svrArgs);
 }
 
 public static void  pirntMsg(String msg)
 {
  System.out.println(msg);
 }
}

注意:代码必须实现wt.method.RemoteAccess接口

将编译后的Demo5.class放置在codebase文件夹下,在windchill shell中运行命令:windchill Demo5

结果将在MethodServer端出现,而不是在windchill shell中打印。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
好的,关于Windchill远程调用方法服务器配置和测试类,我可以给你一些指导。 首先,你需要Windchill中启用远程调用方法服务器。这可以通过Windchill管理员界面的“系统管理”>“远程调用方法服务器”选项来完成。在这里,你需要指定远程调用方法服务器的主机名和端口号等信息。 其次,你需要Windchill中创建一个Java类,用于测试远程调用方法服务器是否正常工作。这个类需要实现Windchill提供的RemoteMethodServerTest接口,并重写其中的方法。在这个测试类中,你可以编写一些简单的测试方法,用于测试远程调用方法服务器是否能够正常响应请求。 最后,你可以在测试类中使用Windchill提供的RemoteMethodServer类来调用远程方法。具体来说,你可以使用RemoteMethodServer类的invoke方法调用远程方法,并将方法名、参数类型和参数值作为参数传递给该方法。例如,以下代码片段演示了如何调用远程方法: ``` RemoteMethodServer rms = RemoteMethodServer.getDefault(); String method = "myRemoteMethod"; Class<?>[] argTypes = { String.class }; Object[] args = { "Hello, World!" }; String result = (String) rms.invoke(method, null, null, argTypes, args); System.out.println(result); ``` 这段代码将调用名为“myRemoteMethod”的远程方法,并将字符串“Hello, World!”作为参数传递给该方法远程方法的返回值将被存储在result变量中,并打印到控制台上。 希望这些信息能对你有所帮助。如果你有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值