Aplicación Java Simple con Embedded Jetty
Este ejemplo ilustra los pasos para construir una aplicación Java simple con un servidor Jetty embebido en ella. Eclipse Jetty es un servidor web Java ligero y también un contenedor de servlets. Esta aplicación será compilada, empaquetada y asociada con un servicio de AppSail como tipo Java SE, y desplegada en la consola.
-
Crea un nuevo proyecto Java desde un IDE de tu elección.
-
Incluye las siguientes bibliotecas en tu directorio de fuentes. Hemos creado una nueva carpeta en este ejemplo y la hemos llamado deps. Estos archivos JAR incluyen todos los servlets, archivos de utilidad y otras dependencias que embeben el servidor Jetty en tu aplicación. Puedes obtener estas dependencias del repositorio oficial de Maven. También puedes agregarlas como dependencias de Maven.
javax.servlet-api-3.1.0.jar
jetty-io-9.4.50.v20221201.jar
jetty-server-9.4.50.v20221201.jar
jetty-util-9.4.50.v20221201.jar
jetty-http-9.4.50.v20221201.jar
jetty-security-9.4.50.v20221201.jar
jetty-servlet-9.4.50.v20221201.jar
jetty-util-ajax-9.4.50.v20221201.jar
- Para crear una aplicación Jetty embebida, necesitarás crear una instancia de la clase org.eclipse.jetty.server.Server y hacer referencia al puerto de escucha con la variable de entorno X_ZOHO_CATALYST_LISTEN_PORT en tu código principal. Debes agregar un handler de Servlet para manejar estas solicitudes. Crea los siguientes archivos Java en tu directorio principal y agrega los fragmentos de código de muestra que se proporcionan a continuación:
CustomJettyServer.java
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
public class CustomJettyServer
{
public static void main( String[] args ) throws Exception
{
String port = System.getenv("X_ZOHO_CATALYST_LISTEN_PORT");
int listenPort;
if(port != null && !port.isEmpty()) {
listenPort = Integer.parseInt(System.getenv("X_ZOHO_CATALYST_LISTEN_PORT"));
} else {
listenPort = 9000;
}
Server server = new Server(listenPort);
ServletContextHandler handler = new ServletContextHandler();
handler.addServlet(ServletHandler.class.getName(), "/");
server.setHandler(handler);
server.start();
}
}
ServletHandler.java
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletHandler extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String path = req.getServletPath();
System.out.println(path);
try {
resp.getWriter().write("Hello ABC");
resp.getWriter().close();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doDelete(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPut(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doHead(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doOptions(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
}
- Compila la aplicación ejecutando el comando que se proporciona a continuación:
javac -cp ".:./*:./deps/*" *.java
-
Ahora puedes inicializar un servicio de AppSail en el mismo directorio desde el CLI o agregarlo en un directorio de proyecto existente. La fuente de la aplicación debe ser el directorio de tu aplicación. Proporciona los siguientes valores al inicializar el servicio de aplicación:
Stack: Java 8
Platform: Java SE -
Asegúrate de que el archivo compilado, junto con los archivos JAR en la carpeta deps, se agreguen en el directorio de compilación que especifiques durante la inicialización. Catalyst comprimirá automáticamente los archivos de tu aplicación durante el despliegue a la consola remota.
-
Despliega el servicio de aplicación en la consola.
-
Luego puedes configurar el comando de inicio que se proporciona a continuación desde la consola:
java -cp ".:./*:./deps/*" *.java
También puedes configurar esto en el archivo app-config.json antes de desplegar.
Accede al servicio de aplicación desplegado desde su URL de endpoint.
Última actualización 2026-03-20 21:51:56 +0530 IST
Yes
No
Send your feedback to us