gpt4 book ai didi

java - 未以管理员身份登录时在 MySQL 驱动程序中获取 CommunicationsException

转载 作者:行者123 更新时间:2023-11-30 23:40:05 25 4
gpt4 key购买 nike

我们正在编写一个用于经济计算的软件。我们使用 Java 6、Swing 应用程序框架、MySQL 5.1、JDBC 和 Hibernate(JDBC 仅用于初始连接测试)。我们将该应用程序部署在 Windows XP 机器上。只要具有管理员权限的用户正在运行该应用程序,它就可以正常工作。如果具有受限权限的用户试图运行它,我们会得到一个异常。

我们试图停用 Windows 防火墙并遇到同样的问题(管理员也激活了防火墙!)。接下来,我们尝试在我们的一台计算机上重建情况,但未能成功,应用程序运行正常。

我们在互联网上的研究并不成功,因为在这种情况下是非常罕见的情况。下面是抛出异常的代码和堆栈跟踪。

/**
* Testet ob eine Verbindung zu der Datenbank mit den Werten aus der Properties-Datei
* möglich ist.
* @return true, falls die Verbindung zustande kommt
*/
public boolean testConnection(Properties props) {
Connection conn = null;
try {
Class.forName(props.getProperty(SystemParameterModel.HIBERNATE_CONNECTION_DRIVER_CLASS_KEY)).newInstance();
System.out.println("Driver: " + props.getProperty(HIBERNATE_CONNECTION_DRIVER_CLASS_KEY));
System.out.println("URL: " + props.getProperty(HIBERNATE_CONNECTION_URL));
System.out.println("User: " + props.getProperty(HIBERNATE_CONNECTION_USER_KEY));
System.out.println("Pass: " + props.getProperty(HIBERNATE_CONNECTION_PASSWORD_KEY));
conn = DriverManager.getConnection(
props.getProperty(HIBERNATE_CONNECTION_URL),
props.getProperty(HIBERNATE_CONNECTION_USER_KEY),
props.getProperty(HIBERNATE_CONNECTION_PASSWORD_KEY));
} catch (SQLException ex) {
System.out.println(ex.getLocalizedMessage());
ex.printStackTrace();
return false;
} catch (Exception ex) {
System.out.println(ex.getLocalizedMessage());
ex.printStackTrace();
return false;
}
try {
conn.close();
} catch (SQLException ex) {
System.out.println("whateves..." + ex.getMessage());
}
return true;
}

和堆栈跟踪:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1118)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:343)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2308)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2122)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:774)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:375)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:289)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.sgp.mybe.calc.model.SystemParameterModel.testConnection(SystemParameterModel.java:153)
at com.sgp.mybe.calc.dao.InitEntityManagerFactory.loadEMF(InitEntityManagerFactory.java:61)
at com.sgp.mybe.calc.dao.InitEntityManagerFactory.<clinit>(InitEntityManagerFactory.java:31)
at com.sgp.mybe.calc.dao.DaoFactory.getAttributeDao(DaoFactory.java:18)
at com.sgp.mybe.calc.model.ValidationAttributeModel.<init>(ValidationAttributeModel.java:24)
at com.sgp.mybe.calc.model.CalcDetailModel.<init>(CalcDetailModel.java:36)
at com.sgp.mybe.calc.main.MybeCalcApplication.startup(MybeCalcApplication.java:46)
at org.jdesktop.application.Application$1.run(Application.java:171)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.net.SocketException: Malformed reply from SOCKS server
at java.net.SocksSocketImpl.readSocksReply(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:292)
... 29 more

属性是对的,毫无疑问。

我希望有人能帮助我,因为这个问题快把我逼疯了。谢谢!

最佳答案

关于java - 未以管理员身份登录时在 MySQL 驱动程序中获取 CommunicationsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4095079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com