我正在尝试连接到一个mysql服务器(现在在同一台机器上,就像在我连接到localost一样(我正在使用Windows并安装了Apache,PHP,Mysql和phpmyadmin)但是我可以很好地连接到运行Netbeans中的应用程序的服务器,但如果我在浏览器中运行applet,它无法连接,我收到此错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:无法创建与数据库服务器的连接。尝试重新连接3次。放弃。
你知道是什么原因引起的吗?据我所知,它现在都连接到我的本地机器。可能是什么问题,MySQL服务器或Apache,或Java应用程序,我怎么能解决它?感谢。
我试图签署applet,我认为它签了它,但它直到给我这个错误。谢谢。
答案 0 :(得分:1)
默认情况下,Java强制执行类似于Javascript的同源策略:不受信任的applet只能打开与下载它们的服务器的网络连接,但禁止跨域访问。
要解决这个问题,需要对applet进行签名,但是对于授予扩展权限本身还不够,还必须明确说明所需的权限。要测试它是否有效,请先尝试授予AllPermission,然后您仍然可以对此进行微调。
授予AllPermission的简单方法是使用JNLP部署applet,添加
<security>
<all-permissions/>
</security>
到您的JNLP部署描述符。
接下来,确保使用相同证书对applet引用的所有 Jars进行签名。仅签署applet Jar文件是不够的。
在“Java控制面板”中,确保在“高级/安全性”中
Allow user to grant permissions to signed content
那应该解决它。
只需检查签名是否真的成功:
使用类似WinZip的东西打开Jar文件,转到META-INF文件夹并检查MANIFEST.MF旁边是否还有两个附加文件 - 一个以.SF结尾,另一个最可能在.RSA中。