윈도우10에 Jetty 서비스 설치하기

간단한 웹페이지 스터디를 위해 웹서버로 Jetty를 사용해 보기로 했다.
– 사용이유: Tomcat 보다 가벼울거 같아서

1. 설치방법
다운로드 http://www.eclipse.org/jetty/download.html
(최신버전 2016년 12월8일  기준 v9.4.0)

설치전 조건으로 JDK 1.8 이상이 설치되어 있어야 한다.

2. 환경변수 등록: JETTY_HOME
적당한 위치에 압축을 풀고, 시스템 환경변수로 ‘JETTY_HOME’을 등록한다
– 위치: ‘제어판>시스템 및 보안>시스템’의 좌측 메뉴에서 ‘고급시스템 설정>환경변수>시스템변수’

JAVA_HOME=C:\Library\Java\jdk1.8.0
JETTY_BASE=D:\jetty_base
JETTY_HOME=C:\Tools\jetty-9.4.0

설치가 잘 되었는지, 일단 확인해 보자

cd %JETTY_HOME%
java -jar %JETTY_HOME%/start.jar jetty.http.port=8081

별다른 문제가 없다면, http://localhost:8081 접속시 아무 내용 없는 페이지가 뜰 것이다.

3. 별도의 위치에 webapps 설정하기
* 참고문서: Creating a new Jetty Base

cd %JETTY_BASE%

mkdir logs
mkdir webapps

# 테스트를 위해 demo-base 로부터 ROOT 폴더를 복사해 놓는다
xcopy %JETTY_HOME%\demo-base\webapps\ROOT webapps\

# jetty 실행을 위한 초기환경설정을 하고
java -jar %JETTY_HOME%/start.jar --create-startd

# jetty 의 기본 실행모듈을 설정하고
java -jar %JETTY_HOME%/start.jar --add-to-start=http,deploy

# jetty를 8081 포트로 실행한다 (logging module 포함)
java -jar %JETTY_HOME%/start.jar jetty.http.port=8081 --modules=logging

마찬가지로 별다른 문제가 없다면, http://localhost:8081 접속시 아래 페이지가 뜰 것이다.

%ec%ba%a1%ec%b2%98-jetty-root

4. 윈도우 서비스로 등록하기
– 윈도우 서비스 등록을 위해서는 ‘prunsrv.exe’가 필요하다
다운로드: http://mirror.navercorp.com/apache//commons/daemon/binaries/windows/

적당한 곳에 ‘commons-daemon-1.0.15-bin-windows.zip‘ 압축을 풀고
‘prunsrv.exe’ 파일을 %JETTY_HOME% 에 복사한다.

그리고 서비스 등록을 위한 batch 파일을 작성한다.
* 참고문서: Startup via Windows Service

batch 파일 작성: jetty_svc_install.bat

@echo off
set SERVICE_NAME=JettyService
set SERVICE_DESC=Jetty v9.4.0 Service
set JETTY_HOME=C:\Tools\jetty-9.4.0
set JETTY_BASE=D:\jetty_base
set JETTY_PORT=8081
set STOPKEY=secret
set STOPPORT=50001

set PR_INSTALL=C:\Tools\jetty-9.4.0\prunsrv.exe

@REM Service Log Configuration
set PR_LOGPREFIX=%SERVICE_NAME%
set PR_LOGPATH=%JETTY_BASE%\logs
set PR_STDOUTPUT=auto
set PR_STDERROR=auto
set PR_LOGLEVEL=Debug

@REM Path to Java Installation
set JAVA_HOME=C:\Library\Java\jdk1.8.0
set PR_JVM=%JAVA_HOME%\jre\bin\server\jvm.dll
set PR_CLASSPATH=%JETTY_HOME%\start.jar;%JAVA_HOME%\lib\tools.jar

@REM JVM Configuration
set PR_JVMMS=128
set PR_JVMMX=512
set PR_JVMSS=4000
set PR_JVMOPTIONS=-Duser.dir="%JETTY_BASE%";-Djava.io.tmpdir="C:\opt\temp";-Djetty.home="%JETTY_HOME%";-Djetty.base="%JETTY_BASE%";-Djetty.http.port=="%JETTY_PORT%";
@REM Startup Configuration
set JETTY_START_CLASS=org.eclipse.jetty.start.Main

set PR_STARTUP=auto
set PR_STARTMODE=java
set PR_STARTCLASS=%JETTY_START_CLASS%
set PR_STARTPARAMS=STOP.KEY="%STOPKEY%";STOP.PORT=%STOPPORT%

@REM Shutdown Configuration
set PR_STOPMODE=java
set PR_STOPCLASS=%JETTY_START_CLASS%
set PR_STOPPARAMS=--stop;STOP.KEY="%STOPKEY%";STOP.PORT=%STOPPORT%;STOP.WAIT=10

"%PR_INSTALL%" //IS/%SERVICE_NAME% ^
 --DisplayName="%SERVICE_DESC%" ^
 --Install="%PR_INSTALL%" ^
 --Startup="%PR_STARTUP%" ^
 --StdOutput="%PR_STDOUTPUT%" ^
 --StdError="%PR_STDERROR%" ^
 --JavaHome="%JAVA_HOME%" ^
 --Jvm="%PR_JVM%" ^
 --JvmMs="%PR_JVMMS%" ^
 --JvmMx="%PR_JVMMX%" ^
 --JvmSs="%PR_JVMSS%" ^
 --JvmOptions="%PR_JVMOPTIONS%" ^
 --Classpath="%PR_CLASSPATH%" ^
 --StartMode="%PR_STARTMODE%" ^
 --StartClass="%JETTY_START_CLASS%" ^
 --StartParams="%PR_STARTPARAMS%" ^
 --StopMode="%PR_STOPMODE%" ^
 --StopClass="%PR_STOPCLASS%" ^
 --StopParams="%PR_STOPPARAMS%"

if not errorlevel 1 goto installed
echo Failed to install "%SERVICE_NAME%" service. Refer to log in %PR_LOGPATH%
goto end

:installed
echo The Service "%SERVICE_NAME%" has been installed

:end

관리자 권한으로 실행된 ‘Command Shell’에서 서비스를 삭제하거나 등록할 수 있다.
%ec%ba%a1%ec%b2%98-jetty-%ec%84%9c%eb%b9%84%ec%8a%a4%eb%93%b1%eb%a1%9d-%eb%aa%85%eb%a0%b9%ec%96%b4

로컬서비스 관리자에 등록된 ‘JettyService’
%ec%ba%a1%ec%b2%98-jetty-%ec%84%9c%eb%b9%84%ec%8a%a4%eb%93%b1%eb%a1%9d

즐공~

  1. prunsrv로 등록한 윈도우 서비스가 실행되지 않습니다. EventID=7024
    – 이유는 모르겠어요 T-T

    좋아하기

    응답

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중

%d 블로거가 이것을 좋아합니다: