気がおかしくなりそうだ。私はJavaアプレットをMySQLで動作させようとしてきましたが、この1つの問題を理解できないようです:
コード:
final String dbClassName = "com.mysql.jdbc.Driver";
final String CONNECTION = "jdbc:mysql://127.0.0.1/db";
Class.forName(dbClassName);
Properties p = new Properties();
p.put("user","<me>");
p.put("password","<pw>");
Connection c = DriverManager.getConnection(CONNECTION,p);
MySQL データベースは動作します。私はphpで接続してその上で物事を行うことができます。コマンドラインでアプレットなしで上記のコードを実行することもでき、動作します。ただし、アプレットとして実行しようとすると、問題が発生し、次のエラーが発生します。
アプレットは php ファイルを通じて提供され、アプレットをロードする部分は以下のとおりです。グーグルで検索した後、「archive = mysql.jar」の部分を追加しました。jar ファイルは mysql-connector-for-java-5.08 です。私のコンテキストが正しいかどうかは完全にはわかりませんが、これがないと、jdbc が見つからないという別のエラーが発生します。
echo("<applet archive=mysql.jar code=Display.class width=2600 height=1600>");
echo("</applet>");
インターネットを検索した後、次のようなものを追加することについて話している多くのコメント ( https://forums.oracle.com/forums/thread.jspa?threadID=1453871など) を見つけました。
grant codeBase "file:${catalina.base}/webapps/TestServlet/-" {
permission java.net.SocketPermission "127.0.0.1:3306", "connect";
};
これのバリエーションをさまざまな場所に入れようとしましたが、実際には何も機能しませんでした。理由の一部を推測しているのは、上記を実装する方法がわからないことです。たとえば、/webapps/? とは何ですか。私は現在 AWS EC2 を使用していますが、これはまったくの初心者です。Tomcat 6も使用しています。
誰かが何か提案があれば、私は本当に助けていただければ幸いです。アプレットからphpファイルを呼び出して接続し、phpファイルに情報を返させることができる場合のように、回避策でさえ、それも受け入れられます。解決策について詳しく説明してください。繰り返しますが、私は Linux 関連のことは初めてです。
ありがとうございました!