Как я могу использовать специфичные для Java типы в сервисе Thrift? - PullRequest
1 голос
/ 27 февраля 2012

Я пишу сервис Thrift, основной функцией которого является передача всех запросов к EJB-компонентам. В основном сервис получит вызов, найдет локальный компонент, перенаправит запрос на компонент и перенаправит ответ клиенту.

Основная проблема в том, что thrift IDL не поддерживает языковые типы. Например, одним из параметров метода является объект, реализующий интерфейс Inamed (который расширяет Serializable).

Как я могу сказать thrift, что я хочу импортировать этот интерфейс, скажем, из my.package.interfaces.INamed и использовать его в качестве допустимого параметра / типа возврата?

1 Ответ

2 голосов
/ 27 февраля 2012

Если вы хотите отправить произвольные объекты через Thrift, вы можете сериализовать их и отправить их как двоичные данные Thrift и десериализовать их на другом конце. Это могло бы обойти проверку типов.

Но Thrift разработан, чтобы быть независимым от языка, поэтому я не думаю, что вы можете выражать языковые типы в IDL.

Можете ли вы просто определить структуру Thrift, которая соответствует INamed, а затем использовать ее в других ваших методах Thrift?

...