2011-10-14 8 views
1

나는 원격 서버 (nohup java -jar myapp.jar &)에서 항상 실행되는 콘솔 Java 애플리케이션을 가지고있다.자바 데몬 배치

자주 (1 일 간격) JAR 파일을 새 파일로 교체해야합니다 (결함을 수정 할 때마다).

현재로서는 ssh (WinSCP)를 사용하여 서버에 연결하여이 작업을 수행합니다.

http 프로토콜을 통해 응용 프로그램을 업그레이드 할 수있는 방법을 어떻게 만들 수 있습니까? JMX를 사용할 수 있습니까?

메커니즘이 일 다음을 수행해야한다 :

가) 현재 실행중인 응용 프로그램을 중지합니다.

b) 새 JAR 파일을 서버에 업로드하십시오.

c) 새 JAR 파일을 실행하십시오.

+0

서버가 실행되는 OS는 무엇입니까? 합리적인 작업량처럼 들리는 핫 배포 메커니즘이 있습니다. 서버가 POSIX OS를 실행하고 있다면 아마도 파일을 sftp로 스크립팅하고 서버를 다시 시작하기 위해 ssh를 통해 원격으로 명령을 실행하는 것이 더 쉬울까요? 스크립트를 빌드 메커니즘에 직접 통합 할 수 있습니다. – Adamski

+0

서버가 우분투 서버에서 실행 중입니다. –

답변

2

은 기본적으로 두 부분으로 프로그램을 중단해야합니다

  1. , 새로운 항아리를 가져 오는 프로그램을 중지 항아리를 대체 monitor 구성 요소, 프로그램을 다시 시작

  2. 실제에게 프로그램, 콘솔 자바 애플리케이션

이론적으로이 모든 것을 단일 자바 프로세스에서 수행 할 수 있지만 추가 복잡성은 제 의견으로는 문제가되지 않습니다.

+1

예, 직접 할 수 있음을 알고 있습니다. 그러나 이미 준비된 솔루션이 있다면이를 사용하고 싶습니다. 바퀴를 다시 발명하고 싶지는 않습니다. –

+0

Java Web Start가 있지만 대화 형 응용 프로그램에 더 적합합니다. 시작시에만 최신 버전을 확인합니다. –

0

LiveRebel에서 독립 실행 형 응용 프로그램 (데몬)의 경우 there's native support입니다. 따라서 주 응용 프로그램은 명령 센터와 통신하는 워치 독 에이전트로 실행됩니다. 명령 센터에서 업데이트를 관리 할 수 ​​있습니다.