Я разрабатываю приложение Corba. Мой IDL интерфейс выглядеть следующим образом:Как я могу вернуть значение java.lang.Object клиенту на CORBA в моем случае?
interface Transaction {
???????? addResource(in TransactionResource resource);
};
Я хотел бы, когда клиент вызова метода addResource для опорного Transaction объекта, который может быть в состоянии вернуть возвращаемое значение Proxy.newProxyInstance (....) в клиент.
Exemple реализации addResource:
public ?????? addResource(TransactionResource resource) {
// creation of a proxy.
java.lang.Object o = Proxy.newProxyInstance(ManageDemand.class.getClassLoader() , new Class[] {ManageDemand.class}, new MyInvocationHandler());
return o;
}
Я хотел бы вернуться «о» к клиенту, как я могу это сделать?
Каков тип возвращаемого значения метода addResource()? это org.omg.CORBA.Object? или другого типа?
Спасибо Adrian Shum, программа работает хорошо, используя вашу идею. Сериализация и десериализация - это решение, отправляя последовательность октетов, которые представляют собой мой java.lang.Object для клиента. –
Честно говоря, хотя это своего рода работа в этом случае, это самое неудобное решение. Я настоятельно рекомендую вам заглянуть в ваш дизайн и не использовать CORBA таким образом. –
Я понял, что сериализация теряет мою распределенную ссылку, которая существует в классе MyInvocationHandler. Когда клиент десериализует прокси-объект и пытается использовать распределенную ссылку, он выдает исключение, потому что он не распознает любого Сервера: S Если вы можете предложить мне некоторые решения. –