CORBA:: IDL中后一个interface的一个函数,用前一个interface作为参数是否可以

carloschen 2006-07-17 03:32:14
例如IDL中间定义了两个interface A和B

B中间有一个Function(in A a)使用了A作为参数

Server端用Class ◎实现Interface A,继承A的POA

从Client端调用Function的时候将一个在client端的◎作为参数传入
(这里应该是一个通过interface A拿到的Class ◎的Stub)

在server端,能拿到A,要如何才能让他转换成◎ (◎是继承A的POA)

从而做◎所需要的工作?
...全文
242 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jigangwang 2006-08-01
  • 打赏
  • 举报
回复
不知道lz是否还关注
想看下调用reference_to_servant附近5行的代码,不知可否?
carloschen 2006-08-01
  • 打赏
  • 举报
回复
well...
这个问题最终找到了解决的方法
用相关的poa的reference_to_servant方法,可是转换

作为一个总结
jigangwang 2006-07-18
  • 打赏
  • 举报
回复
这个没有尝试过,也不知道能不能实现,帮你定一下了只能.
carloschen 2006-07-18
  • 打赏
  • 举报
回复
我现在的问题就是

我通过corba在client端获得了一个server端的映射

当我把它作为参数传回去server端的时候

server端能不能认出来,这个就是原来我给出去的那个class

对他能做什么操作
carloschen 2006-07-18
  • 打赏
  • 举报
回复
narrow方法的返回值,类型只是SBObj类型
而这个类型,我已经可以得到了,作为openQuery的参数
idl2java自动生成了

我想要得到的是SBObject类型,是SBObjPOA的子类
jigangwang 2006-07-18
  • 打赏
  • 举报
回复
我理解lz的意思是服务器还要当客户端使用,客户端也还是一个服务器.这样肯定可以实现(我实现过)
可以尝试一下**Helper.narrow()方法试一下.
carloschen 2006-07-18
  • 打赏
  • 举报
回复
恩,

/*IDL file*/
interface SBObj
{
void func1(in wstring a);
};
interface Deal
{
void openQuery(in SBObj SBO,
in wstring Name) raises (UserDefinedException)
}

/*Server Side*/
public class SBObject extends SBObjPOA
{
public void func1(String a)
{
}
}

public class DealImpl extends DealPOA
{
public void openQuery(SBObj SBO,String Name)
{
/*here need to convert from SBObj to SBObject*/
}
}


//在code里面 SBObj,SBObjPOA,DealPOA等都是idl2java生成出来的
jigangwang 2006-07-18
  • 打赏
  • 举报
回复
看lz的调用逻辑有点混乱啊,能贴一小部分代码出来看么?
carloschen 2006-07-17
  • 打赏
  • 举报
回复
(◎) A
的话,我这边会暴出Java.Lang.ClassCastException
kingdoom 2006-07-17
  • 打赏
  • 举报
回复
类型强转

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧