2013-07-16 47 views
0

我的自签名applet完美适用于applet查看器和本地Web浏览器。但是,当我根据网站服务器上mysql数据库的db名称,用户名和密码更改连接字符串并通过ftp将项目上载到服务器时,applet无法连接到数据库。 applet代码是:客户端计算机上的Applet JDBC连接失败

public void init() { 
JPanel panel = new JPanel(); 
panel.add(new JLabel("Start")); 
revalidate(); 
// TODO start asynchronous download of heavy resources 
String driver = "com.mysql.jdbc.Driver"; 
String url = "jdbc:mysql://www.mywebiste.com:3306/database"; 
String user = "user"; 
String password = "password"; 


try { 
    Class.forName(driver);       
    Connection con = DriverManager.getConnection(url,user,password); 

    String sql4 = "Select * from form where Il='Ankara'"; 

        //System.out.println(password + " " + userName); 
       Statement stmt = con.createStatement(); 
       ResultSet rs = stmt.executeQuery(sql4); 
    panel.add(new JLabel("Connection")); 
    revalidate(); 
} 
catch(Exception e) { 
    panel.add(new JLabel("Not Connected")); 
    revalidate(); 
} 

Container content = getContentPane(); 
      content.setLayout(new GridBagLayout()); 
      content.add(panel); 

}

+1

可否请您发布stacktrace? –

+0

以及为什么要使用小程序?我认为这没有任何意义。尝试使用罐子奥德的Java在webstart –

+0

它不是一个Web应用程序,因此它不具有堆栈跟踪 – user1570194

回答

1

你是同源策略的牺牲品。

这种情况有解决办法通过签署小应用程序,但我会强烈建议不要打扰。由于最近涉及Applets和JNLP的Java中的所有安全问题,这项技术已经和dodo一样死灰复燃。越来越多的系统默认禁用java小程序,越来越多的用户正在自行禁用它(或他们的IT部门)。

最好去与在服务器上你的web应用一些轻量级REST服务,并在浏览器(或者,如果你真的坚持一个applet),一些JavaScript它通过HTTP使用这些服务。那么你也不需要将数据库暴露给网络。

即使是一个内部应用程序我想给它认真思考(或推到谁是问)。

+0

小程序已经签署,并在本地浏览器在我的电脑工作。我必须让它工作。我无法理解问题是什么,它应该通过链接连接信息并通过ftp将其上载到网站的客户端机器上来工作,该网站又是本地主机。 – user1570194

+0

这是一个学校任务吗?如果是的话,他们真的需要重新审视课程和教学人员。无论如何,既然你是在处罚检查,所有的应用程序的罐子签署。确保浏览器接受用于签署罐子的证书。不要忘记localhost是“me”的计算机术语,applet意味着浏览器的计算机。检查浏览器计算机上Java控制面板的安全设置。并从浏览器中的Java控制台发布堆栈跟踪。 –

相关问题