2010-11-20 52 views
0

我有一個Java RMI應用程序,我想要使用CORBA移植到。爲此,我必須將遠程接口定義從java更改爲IDL,但我不確定如何執行此操作。移植到IDL的java接口

此刻,java接口中的一個方法的參數不是預定義的數據類型(比如string,int等),而是我自己定義的參數。在Java界面中,您將它定義這樣的:

public int doSomething(MyObject o); 

在RMI實現傳球的對象是可能的,因爲在客戶端和服務器具有類MyObject來定義自己的構建路徑。

所以我想知道如果,如果我把客戶端和服務器上的MyObject的文件,它會工作,然後在IDL改變方法定義是這樣的:

long doSomething(in MyObject o); 

或者我需要來定義這個類和它的方法莫名其妙地也在IDL中?

回答

1

你需要在你的idl模塊中很好地定義MyObject。在客戶端和服務器的構建路徑中定義類是不夠的。

+0

好的,但如何定義它?我應該使用typedef命令嗎? – dominos 2010-11-20 22:04:21

+0

你只需要在你的idl模塊中定義一個接口,然後MyObject就會實現並且你的方法簽名變成doSomething(MyInterface)等等...... – hhafez 2010-11-20 22:42:57

+0

在這個MyInterface中我需要只定義服務器上使用的對象的方法或所有方法?我也必須讓這個對象類在java中實現這個接口嗎? – dominos 2010-11-20 22:48:57

3

rmic -idl將爲您做到這一點。請參閱工具文檔。

+0

是的,看起來這將是簡單的方法。雖然已經手動完成了idl。 – dominos 2010-11-22 19:43:29