我有一个Web应用程序(java和MySQL),可以在我的开发设置中正常工作,但无法连接到生产服务器上的数据库。
context.xml文件是:
<!-- MySQL -->
<Realm className="org.apache.catalina.realm.JDBCRealm" debug="0"
driverName="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost/xxxxxxxx?characterEncoding=UTF-8"
connectionName="yyyyyyy" connectionPassword="zzzzzzz" userTable="users"
userNameCol="user_name" userCredCol="user_pass" userRoleTable="user_roles"
roleNameCol="role_name" />
<!-- Database Pool -->
<Resource name="jdbc/DB" auth="Container" type="javax.sql.DataSource"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
maxActive="25" maxIdle="5" maxWait="30000" removeAbandoned="true"
removeAbandonedTimeout="60" logAbandoned="true" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/xxxxxxx?autoReconnect=true&zeroDateTimeBehavior=convertToNull"
username="yyyyyyy" password="zzzzzzz" />
获取连接的.java代码是:
public Connection getConnection(){
Connection conn = null;
try {
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
javax.sql.DataSource ds = (javax.sql.DataSource) envContext.lookup("jdbc/DB");
conn = ds.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
数据库中有数据,用户和密码存在,并且他们说它们在上下文文件中,但是连接(来自java代码)返回null。我试图查看日志文件,但我看到的那些文件不包含此应用程序生成的任何内容。
请注意,我不是生产服务器的管理员,所以我必须向sysadmin询问任何文件或数据。他是一个乐于助人的人,但只是简单地说“看看日志”(例如)就不会像更具体的东西那么好。
感谢您的帮助, 仪
答案 0 :(得分:0)
看起来应该有错误输出。
conn变量最初设置为null,并且您的catch块捕获了错误。查看日志文件不会有帮助,因为您输出到控制台而不是输出到日志文件
e.printStackTrace();
设置log4j并使用log和log.error(e); 或在控制台中查找错误并在此处发布