2012-01-08 15 views
5

私は、同じWebページに埋め込まれた複数のアプレットを使用する古いWebアプリケーションのメンテナンスを引き継ぎました。これは正常に動作するために使用されましたが、Next Generation Javaプラグインが導入されて以来(〜1.6.0_10)、個々のアプレットは同じJVMインスタンスにロードされることは保証されません。別のJVMにロードする場合、AppletContext.getApplets()または静的変数を使用して通信することはできません。アプレットが同じJVMインスタンスに読み込まれるようにしますか?

アプレットを強制的に同じJVMインスタンスにロードする方法はありますか?同じ 'java_arguments'パラメータを指定すると、同じJVMインスタンスでJavaプラグインがアプレットを実行するように促す回避策がありましたが、これはアプリケーションでは機能しません(また、Oracleでは正式にサポートされていないため、いずれの場合も時間)。

直接アプレットからアプレットへの通信を間接アプレットからJavaScript /アプレットへの通信に置き換えようとしましたが、クライアントが以前のウェブブラウザのバージョンを使用するため、このアプローチを使用できませんワーキング。可能であれば、非ローカルサーバーを介してすべてのローカルアプレットからアプレットへの通信を回避することに熱心です。

+0

「コントローラアプレット」が4つすべてを独自のコンテンツペインの別々の領域に読み込むと、それらはすべて同じJVMになります。アプレットをWebページに埋め込む必要があるのはなぜですか? –

+0

各アプレットはページコンテンツの一部を提供しますが、他の「通常の」Webコンテンツで区切られているため、ページに埋め込む必要があります。確かに素晴らしいデザインではありませんが、それは私たちが持っているものです。私はすべてのアプレットを最終的に同等のJSに置き換えることを望んでいますが、このアプレットを一度に実行する必要があります。 – jmt

+0

私はAndrew Thompsonのアプローチが可能かもしれないと考えました。コントローラーアプレットをロードし、サブアプレットをロードし、ページコンテンツをパネルにロードして通常のWebコンテンツをレンダリングしますか?他のコンテンツやページのレイアウトなどを制御できますか?あなたが明示的にhttp://www.java.net/node/695065でカバーしていない場合、そうでなければ、あなたはSoLかもしれません。 – ccoakley

答えて

1

Javaコントロールパネルで「次世代」Javaプラグインを無効にすることで、同様の問題が発生し、回避できました。

+1

ありがとうございます。ちょうどそれを試みたが、すべてを1つのVMに強制していたようだ。しかし、私たちは、クライアントがさまざまな組織に広がっており、ワークステーションをロックダウンしているため、クライアントにこれを強制することはできないと考えています。だから、少なくとも私たちは今クライアントに推薦できる最後の手段を用意しました。ユーザーが設定を変更する必要がない他の方法について聞いたら、これははるかに簡単に売れるように知りたいと思うでしょう。 – jmt

関連する問題