Java tomcat重启后数据库未连接,需要重新加载项目
我有一个Struts2 web应用程序,它在子域上运行,如 当tomcat重新启动时,所有域和子域都会启动并轻松连接到数据库,但运行在上的我的一个Struts2应用程序不会连接到数据库,直到应用程序不再从tomcat manager重新加载。 我使用phpMyadmin作为数据库,并使用JDBC连接进行连接 我的数据库连接类是-Java tomcat重启后数据库未连接,需要重新加载项目,java,apache,tomcat,struts2,subdomain,Java,Apache,Tomcat,Struts2,Subdomain,我有一个Struts2 web应用程序,它在子域上运行,如 当tomcat重新启动时,所有域和子域都会启动并轻松连接到数据库,但运行在上的我的一个Struts2应用程序不会连接到数据库,直到应用程序不再从tomcat manager重新加载。 我使用phpMyadmin作为数据库,并使用JDBC连接进行连接 我的数据库连接类是- import java.util.HashMap; import java.sql.Connection; import java.util.Map; import
import java.util.HashMap;
import java.sql.Connection;
import java.util.Map;
import javax.sql.DataSource; import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
public class ConnectionResource {
public static Map<String, DataSource> sessionMap=new HashMap<String, DataSource>();
private static String driver = "com.mysql.jdbc.Driver";
private static String port = "3306";
private static Connection connection = null;
private static String ip = "localhost";
private static String user = "root";
private static String password = "123456";
private static MysqlDataSource dataSource=null;
/**
* @return the ip
*/
public static String getIp() {
return ip;
}
/**
* @param ip the ip to set
*/
public static void setIp(String ip) {
ConnectionResource.ip = ip;
}
/**
* @return the user
*/
public static String getUser() {
return user;
}
/**
* @param user the user to set
*/
public static void setUser(String user) {
ConnectionResource.user = user;
}
/**
* @return the password
*/
public static String getPassword() {
return password;
}
/**
* @param password the password to set
*/
public static void setPassword(String password) {
ConnectionResource.password = password;
}
private static DataSource createDataSource(String db) throws Exception{
String url="jdbc:mysql://"+ip+":"+port+"/"+db+"";
dataSource = new MysqlDataSource();
dataSource.setURL(url);
dataSource.setUser(user);
dataSource.setPassword(password);
return dataSource;
}
public static Connection getConnection(String db){
try{
if(sessionMap.get(db)!=null){
return sessionMap.get(db).getConnection();
}else{
DataSource ds=createDataSource(db);
sessionMap.put(db, ds);
return ds.getConnection();
}
}catch(Exception e){
e.printStackTrace();
}
return null;
}
}
import java.util.HashMap;
导入java.sql.Connection;
导入java.util.Map;
导入javax.sql.DataSource;导入com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
公共类连接资源{
publicstaticmap sessionMap=newhashmap();
私有静态字符串driver=“com.mysql.jdbc.driver”;
专用静态字符串端口=“3306”;
私有静态连接=null;
私有静态字符串ip=“localhost”;
私有静态字符串user=“root”;
私有静态字符串密码=“123456”;
私有静态MysqlDataSource dataSource=null;
/**
*@返回ip
*/
公共静态字符串getIp(){
返回ip;
}
/**
*@param ip要设置的ip
*/
公共静态无效设置ip(字符串ip){
ConnectionResource.ip=ip;
}
/**
*@返回用户
*/
公共静态字符串getUser(){
返回用户;
}
/**
*@param user要设置的用户
*/
公共静态void setUser(字符串用户){
ConnectionResource.user=用户;
}
/**
*@返回密码
*/
公共静态字符串getPassword(){
返回密码;
}
/**
*@param password要设置的密码
*/
公共静态无效设置密码(字符串密码){
ConnectionResource.password=密码;
}
私有静态数据源createDataSource(字符串db)引发异常{
String url=“jdbc:mysql://”+ip+:“+port+”/“+db+”;
dataSource=新的MysqlDataSource();
setURL(url);
dataSource.setUser(用户);
dataSource.setPassword(密码);
返回数据源;
}
公共静态连接getConnection(字符串db){
试一试{
if(sessionMap.get(db)!=null){
返回sessionMap.get(db.getConnection();
}否则{
数据源ds=createDataSource(db);
sessionMap.put(db,ds);
返回ds.getConnection();
}
}捕获(例外e){
e、 printStackTrace();
}
返回null;
}
}
有什么问题吗?根据你提到的,我觉得它没有正确部署。
请提供更多详细信息以获得正确的问题 感谢您的宝贵意见。。 我喜欢这个问题。。 存在记录器问题。。记录器类未初始化。
因此,my Quartz在连接数据库时出现问题…请提供更多详细信息。如果您不能更好地解释您的问题,我们将无法帮助您。