MySQL ExceptionInInitializerError Java JDBC on Startup



我正在制作一个使用SQL数据库的简单小程序。
当我在 Netbeans 上本地使用此小程序时,它运行良好,没有问题,但是当我将其部署到 Web 时,我遇到了一个奇怪的错误。
我在本地使用 Java 1.6,并且我部署的服务器运行的是 Java 1.6
我正在使用 J2BC 5.1.22。
这是我得到的错误:

java.lang.ExceptionInInitializerError
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:315)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at FinalProject.DBConnect.<init>(DBConnect.java:29)
at FinalProject.TriviaApplet.init(TriviaApplet.java:61)
at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.init(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(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)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
at java.lang.System.getProperty(Unknown Source)
at com.mysql.jdbc.StringUtils.<clinit>(StringUtils.java:70)

我用于初始化驱动程序的代码是:

        Class.forName("com.mysql.jdbc.Driver");
        connection = DriverManager.getConnection(connectionURL, "db", "pw");

有没有人知道为什么会发生这种情况?

另外,我的小程序从另一个类获取所有信息。 ^ 以上来自DBConnect Class。将创建此类的实例,并且此类执行所有数据库工作。这是作为小程序完成的要求。我已经对我的 jar 和包含 JDBC 驱动程序的 lib jar 进行了签名。

这是

由于网络安全问题。 如何将 JDBC 驱动程序部署到客户端? 你给他们足够的权限吗? 事实上,在小程序中使用 JDBC 访问数据库是无值的。

  1. 它要求所有客户端都必须在 CLASSPATH 中安装 JRE 和 JDBC 驱动程序,您可以尝试将 JDBC 驱动程序与您的小程序打包在同一 JAR 中。

  2. 它需要通过在每个本地 JRE 中授予套接字连接来修改策略。

permission java.net.SocketPermission "10.6.1.16:1521", "connect, resolve";

这使得这个解决方案几乎无用。

最新更新