質問

私はマスターズキャップストーンコースを早めに撮影し、C#でプロジェクトを行っていますが、他のみんながJavaで自分のプロジェクトをやっています。このプロジェクトには4つのサービスがあり、ソケットにサービス名をマップする名前サーバーが必要です。インストラクターは、学生がRMIを使用してこのレジストリを構築することを提案しています。私はJavaにあまり慣れておらず、インストラクターは.NETにあまり精通していないため、C#で同等のものを思い付くことができませんでした。誰かがそれを知っていますか?

アップデート:

そのソケットを明示的に知らずにWCFサービスを発見する方法を探しています。

更新2:

VS 2008/WebDevサーバーを使用して、XPラップトップでプロジェクトをデモします。

役に立ちましたか?

解決

JavaのRMI Registeryは、キーでサービスを検索できるコンテナとして機能します。このメカニズムは、依存関係インジェクションエンジンを使用するServiceLocator(ServiceLocator Patternなど)を介してサービス/オブジェクトを解決し、サービスのインスタンスを解決するように依頼します(つまり、既知の名前、インターフェイスなど)。

IMyService service = ServiceLocator.Resolve<IMyService>();

また

IMyService service = (IMyService)ServiceLocator.Resolve(typeof(IMyservice));

WCFは、単一のサービスと単一のサービスホストファッションでのみ機能します。つまり、各サービスには個別のサービスホストが必要です。サービスホストを集約し、ポートを開き、DIコンテナに登録するサービスコンテナを作成でき、後で上記のようにサービスのインスタンスを要求するだけです。

他のヒント

Windows Server 2K3/8に付属のUDDIサーバーを使用できます。これにより、サービスが発見されます。それ以外は、サードパーティのパッケージが必要であるか、自分のパッケージを転がす必要があります。

私はJavaリモートの専門家ではありません。

あなたが探しているものはWCF用語サービスエンドポイントで呼ばれていると思います。これは、のいずれかで行うことができます 構成ファイル または経由 コード .

WCFの概要については、このリンクを参照してください。Windows Communication Foundationアーキテクチャ

について読んでください TCPポート共有, 、Windows Server 2008の新しいテクノロジー、それはあなたを助けるかもしれません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top