私は基本機能がすべてのクエリをEJB Beanに代理することであるThriftサービスを書いています。基本的にサービスは呼び出しを受け取り、ローカルBeanを検索し、Beanにクエリを転送し、その応答をクライアントに転送します。スリフトサービスでJava固有のタイプを使用するにはどうすればよいですか?
主な問題は、リフトIDLは言語固有のタイプをサポートしていないことです。たとえば、methodパラメータの1つはInamedインタフェース(Serializableを拡張)を実装するオブジェクトです。
「my.package.interfaces.INamed」などからこのインターフェイスをインポートし、それを有効なパラメータ/戻り値の型として使用したいと思うことを、どのように伝えることができますか?
私はこの構造体を定義することができません - 私が受け取るオブジェクトについて知っているのは、インタフェースがあることです。クラスについては何も知らないので、それが含まれているフィールドを知らないので書き込めません構造体。 私は言語の独立性の概念を理解していますが、Thriftは「void setName(1:javatype(my.package.interfaces.INamed)name)」のようなより特定の言語のメカニズムを許可しています。 – r3mbol
倹約してコードを生成し、型と輸入物を調整するためにgen-codeを修正することですが、それは正しい解決策ではないと感じています。 – r3mbol