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

标签 java apache tomcat struts2 subdomain

我有一个 Struts2 网络应用程序,它运行在像 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;
}   
}

什么是问题?

最佳答案

根据你提到的,我觉得它没有正确部署。 请提供更多详细信息以获得您遇到的正确问题。

关于java - tomcat重启后数据库未连接,需要重新加载项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31277089/

相关文章:

java - 在根元素之后追加数据,而不将整个 XML 文件加载到内存中

java - 在我的 Java 应用程序中使用包 matlabcontrol 来控制 Matlab?

java - 多线程会导致静态方法的并发问题吗?

Java - com.cloudera.sqoop 与 org.apache.sqoop 哪个要从 sqoop jar 导入?

security - 如何在 Tomcat 上更新 ssl 证书?

nginx - 安装 https 证书后在地理服务器、NGINX 上的 POST 和 PUT 请求 block

apache - 如何写入远程linux目录

java - 在 Java 中并行化 QuickSort 时,线程永远不会在 join() 处返回。为什么?

php - 无需身份验证即可识别唯一用户

apache - 如何使用 .htaccess 重定向错误的引用?