I embed an applet to a HTML page. The applet also uses the MySQL jar file.
It works just fine without the MySQL jar file. When executing it from the local webserver or hosted webserver it gives the following error:
Exception in thread "AWT-EventQueue-2" java.lang.ExceptionInInitializerError
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:286)
at java.sql.DriverManager.getConnection(Unknown Source)
.........
Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "file.encoding" "read")
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
My File list:
/appletTest.html
/mysql-connector-java-5.1.18-bin.jar
/applet/testApplet.class
testApplet.class:
package applet;
import java.applet.Applet;
import java.awt.Graphics;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class HelloWorldApplet extends Applet {
@Override
public void paint(Graphics g) {
g.drawString("Hello World", 25, 50);
Connection con = null;
Statement st = null;
ResultSet rs = null;
String url = "jdbc:mysql://localhost:3306/testdb";
try {
con = DriverManager.getConnection(url, "root", ""); // <= here fails
st = con.createStatement();
rs = st.executeQuery("SELECT VERSION()");
if (rs.next()) {
g.drawString(rs.getString(1), 25, 50);
}
} catch (SQLException ex) {
System.out.println(ex);
}
}
}
appletTest.html:
<html>
<head>
<title>Applet Test</title>
</head>
<body>
<applet code="applet.testApplet.class" width="500" height="300" archive="mysql-connector-java-5.1.18-bin.jar">
</applet>
</body>
</html>
I assume that this security error comes because an applet cannot access to local resources unless you 'sign it' or 'change the local security policy'. But all my files are located on the webserver and the applet requests the jar file which is also located on the webserver.
So, I don't see here a local file request but still get this error. Could you please give me any suggestions?