繁体   English   中英

Applet与mysql通信中的java.security.AccessControlException

[英]java.security.AccessControlException in applet communicating with mysql

我学校的编程俱乐部正在启动补习程序,并且我建立了一个Java小程序,学生可以使用该小程序来请求会话。 该小程序与数据库进行通信,该数据库具有一个表,该表存储教师的可用性,并向用户显示可用时间。

首先,我知道出于安全原因,让applet直接与数据库通信是一个坏主意。 话虽这么说,这是一种低风险的情况(数据库中没有存储“敏感”内容),并且该解决方案只是暂时的(我们目前没有能够运行tomcat的服务器,因此需要完成所有工作)客户端)。

小程序GUI正确加载,但是在初始化试图访问数据库的类且未加载任何数据时,抛出java.security.AccessControlException ("java.lang.RuntimePermission" "setContextClassLoader")异常。 我怎么解决这个问题?

编辑:我已更改我的代码,以便数据库通信发生在与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)

小程序默认情况下具有非常严格的安全模型,为了扩展可用于小程序的功能,您将需要对小程序进行签名,然后编写具有所需扩展权限的更新的安全策略。

您的第二个问题-未找到类-是因为驱动程序未随小程序一起分发。

我参考Java 1.1找到了这个。

如果使用小程序,则必须将这些JAR和类文件放在小程序的代码库目录和/或存档位置中

我不确定与Java的最新版本之间的相关性如何,但是我建议这是使驱动程序Jar可用于applet的最佳选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM