【问题标题】:Execute commands on GlassFish inside a application in java在 Java 应用程序中的 GlassFish 上执行命令
【发布时间】:2013-09-10 12:46:10
【问题描述】:

当我的应用程序检测到特定错误时,我需要刷新 GlassFish 中的池。是否可以在 Java 应用程序内的 GlassFish 上执行命令?当出现错误时,我只需要刷新这个池。

【问题讨论】:

    标签: java command-line glassfish exec flush


    【解决方案1】:

    可以通过 SSH 完成

    public class FlushPool {
    
        public static void flushConncetionPool(String nameConnectionPool){
            Session session = null;
            Channel channel = null;
    
            JSch jsch = new JSch();
            try {
                session = jsch.getSession("username", "host", port);
                java.util.Properties config = new java.util.Properties();
                config.put("StrictHostKeyChecking", "no");
                session.setConfig(config);
                session.setPassword("password");                
                session.connect();
    
                channel = session.openChannel("shell");
    
    
                OutputStream ops = channel.getOutputStream();
                PrintStream ps = new PrintStream(ops, true);
                channel.connect();
    
    
                ps.println("sudo su -");          
                ps.println("/app/glassfish/glassfish/bin/asadmin --user admin --passwordfile password.txt flush-connection-pool " + nameConnectionPool);
                session.diconect();
                channel.disconect();
            }catch(Exception e){
               // do something
            }
    
    
      }
    }
    

    password.txt 必须在服务器端

     AS_ADMIN_PASSWORD = senha
     AS_ADMIN_ADMIN_PASSWORD = senha
     AS_ADMIN_USERPASSWORD=senha 
     AS_ADMIN_MASTERPASSWORD= senha
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-13
      • 2011-01-16
      • 2015-06-15
      • 2017-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多