0

私の学校のプログラミング クラブは個別指導プログラムを開始しており、学生がセッションを要求するために使用できる Java アプレットを作成しました。アプレットは、チューターの空き状況を格納するテーブルを持つデータベースと通信し、利用可能な時間をユーザーに表示します。

まず第一に、セキュリティ上の理由から、アプレットがデータベースと直接通信するのは悪い考えであることはわかっています。そうは言っても、これはかなりリスクの低い状況 (データベースに「機密」なものは何も保存されていない) であり、この解決策は一時的なものにすぎません (現在、Tomcat を実行できるサーバーがないため、すべてを実行する必要があります)。クライアント側)。

java.security.AccessControlException ("java.lang.RuntimePermission" "setContextClassLoader")アプレット GUI は正しくロードされますが、データベースにアクセスしようとするクラスを初期化するときに例外がスローされ、データがロードされません。どうすればこの問題を解決できますか?

編集: DB 通信が GUI と同じスレッドで行われるようにコードを変更しました。今、私はこの例外を受けています:

Exception in thread "Thread-46" java.lang.NoClassDefFoundError: Could not initialize class com.mysql.jdbc.StringUtils
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:298)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at helpsessions.DBHandler.run(DBHandler.java:53)
at java.lang.Thread.run(Unknown Source)
4

1 に答える 1

0

アプレットには、デフォルトで非常に制限されたセキュリティ モデルがあります。アプレットで利用できる機能を拡張するには、アプレットに署名し、必要な拡張アクセス許可を使用して更新されたセキュリティ ポリシーを作成する必要があります。

2 番目の問題 - クラスが見つかりません - は、ドライバーがアプレットと共に配布されていないためです。

Java 1.1を参照してこれを見つけました。

アプレットを使用している場合は、それらの JAR とクラス ファイルをアプレットのコードベース ディレクトリやアーカイブの場所に配置する必要があります。

最新バージョンの Java との関連性がどの程度かはわかりませんが、ドライバー Jar をアプレットで使用できるようにするための最良のオプションであることをお勧めします。

于 2013-03-17T21:58:15.877 に答える