我正在处理上传到ftp服务器的applet。该applet应该连接到MySQL数据库(据我所知,它应该在同一台服务器上)。
注意:小程序是自签名的。
public static void initConnection(final Settings info) throws ClassNotFoundException, SQLException
{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://" + info.getHost() + ":3306/" + info.getDbName(),
info.getUser(), info.getPass());
stmt = conn.createStatement();
}
答案 0 :(得分:2)
我似乎已经自己回答了这个问题。问题是,从尝试连接到数据库,到一个完整的工作连接需要大约3分钟左右。从技术上讲,这个问题一直都是空洞的。我会看看我是否可以找到它为何如此缓慢并提出另一个问题,如果我找不到它。
所以再一次,它与策略或权限无关。由于某种原因,只是因为地狱而缓慢。
答案 1 :(得分:0)
我认为这是因为,当您从服务器运行applet时,Java Plug-in会强制使用严格的沙箱来防止执行恶意操作。其中之一是建立与其他计算机的连接。
只需编写一个策略文件,允许连接到数据库主机的端口3306(使用policytool
生成它;您需要授予java.net.SocketPermission
权限,resolve
和对于数据库主机,connect
个操作,然后将其嵌入到JAR中,并在代码中使用该文件创建安全管理器(here是一个示例)。
java.lang.RuntimePermission
(操作:accessClassInPackage.sun.misc
),您应该没问题。