使用参数约束调用一个远程的COBRA方法

日期: 2008-05-18 作者:Jeff Hanson 来源:TechTarget中国

问:我在写一个Java Dll客户端,它完成从Interface Repository.接口库中读取信息。我必须执行一个含有外部类型参数的远程方法,这个外部类型是用户自定义的数据类型。我将如何建立这个需求的模型,使其能够调用操作方法并且读取结果呢?现在我可以读取该方法所使用的参数名称,参数类型以及参数个数。我尝试过使用动态factory来构造dynstruct,但是不行。

那么使用什么方法我才能将用户自定义的数据类型作为外部参数传递给COBRA方法呢?   答:这是个好问题,因为J2EE动态调用接口(Dll)客户端模型允许对基于远程过程调用(RPC)的Web服务进行存取,即使在运行之前并不知道这……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

问:我在写一个Java Dll客户端,它完成从Interface Repository.接口库中读取信息。我必须执行一个含有外部类型参数的远程方法,这个外部类型是用户自定义的数据类型。我将如何建立这个需求的模型,使其能够调用操作方法并且读取结果呢?现在我可以读取该方法所使用的参数名称,参数类型以及参数个数。我尝试过使用动态factory来构造dynstruct,但是不行。那么使用什么方法我才能将用户自定义的数据类型作为外部参数传递给COBRA方法呢?

  答:这是个好问题,因为J2EE动态调用接口(Dll)客户端模型允许对基于远程过程调用(RPC)的Web服务进行存取,即使在运行之前并不知道这个服务的详细信息。创建一个Dll客户端,请按照以下步骤进行:

  1:使用javax.xml.rpc.ServiceFactory类创建一个服务对象,方法如下:

  ServiceFactory factory = ServiceFactory.newInstance();

  Service service = factory.createService(new QName(theServiceQName));

  2:在服务对象中,创建一个调用对象(Call object),方法如下:

  QName port = new QName(theQNnamePort);

  Call call = service.createCall(port);

  3:作为对Web服务描述语言(WSDL)文件单元的响应,在调用对象(Call object)中设置服务终点地址,方法如下:

  call.setTargetEndpointAddress(theEndpointAddress);

  4:在调用对象(Call object)中设置适当的属性。

  5:指定该方法的返回类型、名称以及参数,方法如下:

  QName qNameRetType = new QName(NS_XSD, "theXSDType");

  call.setReturnType(qNameRetType);

  call.setOperationName(new QName(theOperationNamespaceValue,

  "theOperationName"));

  call.addParameter("String_1", QNAME_TYPE_STRING,

  ParameterMode.IN);

  6:在调用对象(Call object)中调用远程方法,方法如下:

  String[] params = { "param1" };

  String result = (String)call.invoke(params);

相关推荐