首先,这是一个自签名小程序,所以权限还可以 其次,将applet上传到ftp服务器,并使用.html文档打开。
我用来连接的代码本身是这样的:
try
{
Class.forName("com.mysql.jdbc.Driver");
long start = System.currentTimeMillis();
Connection conn = DriverManager.getConnection("jdbc:mysql://the.hostname:3306/qnqdb", "username", "password");
long end = System.currentTimeMillis();
JOptionPane.showMessageDialog(rootPane, (end - start) + "ms.\n" + conn);
}
catch (SQLException ex)
{
JOptionPane.showMessageDialog(rootPane, ex.getClass() + "\n" + ex.getMessage());
}
JOptionPane显示它耗时127秒(刚刚超过4.5分钟),无论我连接到什么数据库,它仍然是第一次永远。
如果我再次连接它,它只需要200-2000毫秒(似乎正常)
为了测试它,我还打开了操作Wireshark并收听3306端口。前4分钟没有任何事情发生。 Image of the capture
然后在接下来的50秒内,它记录了28个数据包。
奇怪的是,如果我在本地运行applet时连接到数据库,那么第一次只需要大约500ms,之后大约需要200ms。
我在想的是:
如果它有任何重要性,那么来自applet的正常套接字连接在本地和ftp上只需要20-30ms。
修改
显然,在其他计算机上,它不需要那么长时间。在一个我试过它是~20秒,而在另一个它据说只有2-3秒
更新:看起来它确实只需要这台计算机需要很长时间。
Java控制台级别5的日志:http://pastebin.com/2u2v7gZV
答案 0 :(得分:1)
在再次审阅Java控制台日志之后,我注意到了一件事。
我一直在重复
network: Connecting http://shop.nordicbeads.com/Renes/mysql-connector-java-5.1.6-bin.jar with
proxy=DIRECT network: Cache entry not found [url: http://shop.nordicbeads.com/Renes/mysql-connector-java-5.1.6-bin.jar, version: null]
一遍又一遍,但后来我发现它使用的路径出于某种原因而不是ftp服务器上库的路径。路径是Renes / lib / library.jar,它没有在lib文件夹中使用look
我改变了库的位置,现在只需3秒即可连接。
奇怪的是,为什么我测试过的所有其他计算机都会立即查看lib文件夹。我为什么要花4分钟到那里看? 在html文档中,我甚至在lib / in前面的存档行中添加了库,但是有没有这样做没有什么区别。