0

Java1.5で実行されているWeblogic10によって提供されているアプレットがあります。Java1.6とJava1.7を使用して問題のアプレットを作成しようとしましたが、どちらも同じ癖があります。

つまり、クライアントがJRE 1.7を使用してアプレットを実行すると、どういうわけか、まったく異なるパネルから関数が呼び出されます。これはまったく意味がありません、私は知っています、しかしそれは事実です。これが何が起こるかです:

ユーザーはアプリケーションをロードし、操作するデータオブジェクトを選択します。このデータオブジェクトには、クイックビューと詳細ビューの2つのパネルがあります。詳細ビューでは、ユーザーはオブジェクトの資産値を変更できますが、クイックビューでは変更できません。資産価値を変更しようとすると、「よろしいですか?」というアラートが表示されます。したがって、クイックビューを表示すると、これらのアラートがランダムに取得され、オブジェクトのアセット値が実際に変更されていることを確認します。これが可能な画面上に表示されていなくてもです。さらに悪いことに、詳細ビューの他の値はランダムにゼロまたはヌルに変更され、確認を必要としないため、すぐにデータベースにヒットします。

当社にはさまざまなJavaアプリケーションがあり、この問題が発生しているのは1つだけであることに注意してください。ユーザーにはJava1.7をインストールしないようにお願いしていますが、誰かがインストールすると、このアプリケーションが機能しなくなることがよくあります。次に、1.7を削除してから、1.6をインストールする必要があります。これで、すべて問題ありません。

これをデバッグしようとしましたが、どこにも見つかりません。また、私はアプリケーションの作成者ではなく、単に解決策を見つけることを任されています。どこを見ればよいか、これを適切にデバッグする方法についてのアイデアでさえ、どんな助けでも大歓迎です。

4

1 に答える 1

1

最近、私はアプレットであまりやっていません。

アプレットには、次のスコープを持つメソッドがあります。

{ init { start; stop } destroy }

start/stop スコープは、表示される HTML ページに関係します。

私の推測では、initあまりにも多くのことが起こっているか、staticフィールドが使用されています。

を使用すると、空の を使用して を呼び出しinitて、古いアプレットを拡張できます。/についても同様です。initstartsuper.init()stopdestroy

静的フィールドは、たとえば次のように見ることができjavapます。次に、実際に書き直す必要がありますが、アプレットにとって静的フィールドは絶対に避けてください。

appletviewerアプレットは、JDK の bin ディレクトリからテストできます。

于 2013-01-15T17:23:58.483 に答える