tomcat重启后数据库未连接需要重装项目

时间:2015-07-07 18:56:59

标签: java apache tomcat struts2 subdomain

我有一个Struts2 Web应用程序,它在子域上运行,如http://www.abc.example.com

当重新启动tomcat时,所有域和子域都会被启动并轻松连接到数据库,但我在http://www.abc.example.com上运行的一个Struts2应用程序未连接到数据库,直到应用程序不再从tomcat管理器重新加载。 我使用 phpMyadmin 作为数据库并使用JDBC连接进行连接。

我的数据库连接类是 -

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;
}   
}

什么问题?

2 个答案:

答案 0 :(得分:0)

根据你提到的,我觉得它没有正确部署。 请详细说明以获得正确的问题。

答案 1 :(得分:0)

感谢您的宝贵意见.. 我喜欢这个问题.. 存在记录器问题..记录器类未初始化.. 所以我的Quartz创建了连接数据库的问题......