Jetty es un servidor de aplicaciones Java que actualmente está en la versión 9, es competencia directa de Apache Tomcat aunque ambos son gratuitos.
Recientemente debí realizar la instalación de Apache Jenkins sobre sistema operativo Windows, me encontré con que no existe un archivo ejecutable similar al disponible para plataformas *UX, por tanto y es probable que muchos usuarios no puedan utilizar este aplicativo (Jetty) para realizar sus trabajos y/o montar entornos de pruebas.
Para evitar futuros problemas cree un script con extensión bat de acuerdo a la especificación definida en el archivo jetty.sh
La diferencia es que para cerrar el aplicativo cuando sea necesario detenerlo es necesario dar la combinación "CTRL+C"
El archivo debe ser puesto dentro de la carpeta "bin" del servidor Jetty, por propositos de seguridad el archivo bat no está incluido en este post.
@ECHO OFF
ECHO Startup script for jetty under windows systems.
@ECHO OFF
cd ../
set JETTY_HOME=%cd%
set JETTY_BASE=%JETTY_HOME%
set JETTY_CONF=%JETTY_HOME%\etc\jetty.conf
set JETTY_LOGS=%JETTY_HOME%\logs
set JAVA_OPTIONS="-d64 -Xms1024m -Xmx1024m"
set JAVA_OPTIONS=%JAVA_OPTIONS% -Djetty.home="%JETTY_HOME%" -Djetty.base="%JETTY_BASE%"
set JETTY_START=%JETTY_HOME%\start.jar
set RUN_ARGS=%JAVA_OPTIONS% -jar "%JETTY_START%"
set JAVA_HOME="C:\Java\jdk1.8.0_71"
%JAVA_HOME%\bin\java %RUN_ARGS% -Djetty.logging.dir="%JETTY_LOGS%" start-log-file="%JETTY_LOGS%\start.log"
Ahora que contamos con el inicio por comandos del servidor de aplicaciones se debe proceder a la carga dentro de la carpeta "webapps" de jetty del archivo "jenkins*.war" (el asterisco corresponde a la versión de Jenkins) adicionalmente es necesario agregar un descriptor de seguridad que permite que Jenkins pueda iniciar sin problemas que debe tener el nombre "jenkins*.xml"
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="contextPath">/jenkins</Set>
<Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/jenkins.war</Set>
<Get name="securityHandler">
<Set name="loginService">
<New class="org.eclipse.jetty.security.HashLoginService">
<Set name="name">Jenkins Realm</Set>
<Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set>
</New>
</Set>
</Get>
</Configure>
En mi caso renombre el archivo "war" de jenkins a "jenkins.war" debido a que cuando se inicia el servidor podré acceder de manera simple a la url "http://localhost/jenkins" recuerde que para cambiar el puerto de comunicaciones de Jetty debe modificar el archivo "jetty-http.xml" ubicado en la carpeta "etc" en la propiedad "<Set name="port"><Property name="jetty.http.port" deprecated="jetty.port" default="80" /></Set>"
Una vez con esto configurado el aplicativo iniciara correctamente.