DB에 연결하는데 SSH가 설정되어있는 경우 다음과 같이 연결을 해준다.
jsch를 설치 해준다.
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.55</version>
</dependency>
이후 두개의 클래스를 만든다.
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
public class SSHConnector {
private final static String remoteHost = "192.168.0.1";
private final static String user = "admin";
private final static String password = "admin";
private final static int port = 22;
private Session session;
public void closeSSH() {
session.disconnect();
}
public SSHConnector() {
try {
JSch jSch = new JSch();
session = jSch.getSession(user, remoteHost, port);
session.setPassword(password);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
session.setPortForwardingL(port, remoteHost, 1521);
System.out.println(" session.connect();");
} catch (Exception e) {
e.printStackTrace();
}
}
}
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
//어노테이션 사용시
//@WebListener
public class SSHContextListener implements ServletContextListener {
private SSHConnector sshConnector;
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("init start!");
try {
sshConnector = new SSHConnector();
System.out.println("init destory!");
}catch(Exception e) {
e.printStackTrace();
}
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("init destory!");
sshConnector.closeSSH();
}
}
SSHContextListener에 @WebListener를 사용하면 tomcat에게 Listener클래스임을 알려주어 SSH가 동작하게 된다.
버전이 낮아 사용하지 못하는 경우
web.xml에서
<listener>
<listener-class>com.septem.exlive.utils.SSHContextListener</listener-class>
</listener>
를 추가해주면 된다.
'IT > Spring' 카테고리의 다른 글
2021-01-06-JPA-모델마다-다른-스키마-사용 (0) | 2023.02.27 |
---|---|
2021-01-06-bean-thread-safe (0) | 2023.02.27 |
토비 스프링 - AOP, 트랜잭션 용어 (0) | 2019.11.07 |
토비 스프링 - AOP (0) | 2019.11.04 |
토비 스트링 - 트랜잭션 (0) | 2019.11.01 |
댓글