2011-10-22 7 views
0

私は、Javaアプレットがソケットを使用してポート経由で(Javaで書かれた)カスタムサーバーと通信する約8歳のシステムを持っています。いつでも、十数人程度のユーザーしかいません。ますます多くのユーザーが、制御できないファイアウォールの背後にいます。提案された解決策は、ポート80経由でオブジェクトを送信する方法を見つけることです。アプレットとの間でオブジェクトをファイアウォール経由で送信するRMIまたはサーブレット?

私はサーブレットに傾いています。大きな欠点は、すべてをまとめて(Apache、Tomcat、サーブレット)どのように組み込むかを学ぶ時間です。

しかし、RMIは(その面で)よりシンプルだと思われますが、ファイアウォールに関するオラクルのFAQを読んでも、それはいつもうまくいかないと思うようになります。さらに、私はポートを共有しているときにApacheの動作方法に関する良いガイドを見ていません。

(1)クライアントにはJavaアプレットを使用する必要があります。クライアントのファイアウォールを制御できません。(3)私はまともなアマチュアプログラマーですが、専門家ではなく、資金がありません。プロフェッショナルを雇います。これは、より良いルートですか、別の解決策が見当たりませんか?

+0

"ファイアウォールに関するオラクルのFAQ"と言えば、どのような文書について話していますか? –

+0

[download.oracle.com/javase/1.4.2/docs/guide/rmi/faq.html#firewall](http://download.oracle.com/javase/1.4.2/docs/guide/rmi/)を参照してください。 faq.html#firewall) – RPW

答えて

2

現在、すべてRMIで機能しているとすれば、私はtunnelling RMI over HTTPの方に傾いています。私は決してそれをやったことはありませんが、これはRMIの古くからの機能です。

Apacheとポートを共有する方法について説明します。実際にはこれを行うことはできません。特定のポートで1つのプロセスだけがリッスンできます。しかし、あなたができることはApacheをポート80に置いて、リクエストを他のポートで受信できるRMIに転送するように設定することです。あなたはこれを行うことができます(これを正しく読んでいれば!)RMI-over-HTTPメソッドの勇気に焼かれたパスは/cgi-bin/java-rmi.cgiです。 Apacheの有名なmod_rewriteを使って、そのパスへのリクエストをキャッチし、そのポート上のJavaプロセスに渡すことができます。 RMIプロセスをまったく別のホストに配置して、ネットワーク経由で要求を渡すこともできます。

関連する問題