Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java tomcat重启后数据库未连接,需要重新加载项目_Java_Apache_Tomcat_Struts2_Subdomain - Fatal编程技术网

Java tomcat重启后数据库未连接,需要重新加载项目

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

我有一个Struts2 web应用程序,它在子域上运行,如

当tomcat重新启动时,所有域和子域都会启动并轻松连接到数据库,但运行在上的我的一个Struts2应用程序不会连接到数据库,直到应用程序不再从tomcat manager重新加载。 我使用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;
}   
}
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在连接数据库时出现问题…

请提供更多详细信息。如果您不能更好地解释您的问题,我们将无法帮助您。