--- title: "Embedded Jetty" url: https://docs.catalyst.zoho.com/es/serverless/help/appsail/help-guides/java/embedded-jetty/ description: "Catalyst AppSail es un componente PaaS completamente gestionado de Catalyst Serverless que te permite desarrollar y desplegar servicios en Java, Node.js y Python en la nube con facilidad, y gestionar tus instancias de plataforma." last_updated: 2026-03-20T16:21:56Z service: Serverless type: general --- # Aplicación Java Simple con Embedded Jetty Este ejemplo ilustra los pasos para construir una aplicación Java simple con un [servidor Jetty](https://docs.oracle.com/cd/E19199-01/816-6774-10/a_war.html) 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. 1. Crea un nuevo proyecto Java desde un IDE de tu elección. 2. 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](https://mvnrepository.com/). También puedes agregarlas como dependencias de Maven. ```json 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 ``` 3. 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](https://docs.catalyst.zoho.com/es/serverless/help/appsail/key-concepts/appsail-execution/#default-port-for-app-startups) 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** ```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** ```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); } } ``` 4. Compila la aplicación ejecutando el comando que se proporciona a continuación: ```json javac -cp ".:./*:./deps/*" *.java ``` 5. Ahora puedes [inicializar un servicio de AppSail](https://docs.catalyst.zoho.com/es/cli/v1/initialize-resources/initialize-appsail/) en el mismo directorio desde el CLI o [agregarlo](https://docs.catalyst.zoho.com/es/cli/v1/add-appsail/) 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 6. 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. 7. [Despliega el servicio de aplicación](https://docs.catalyst.zoho.com/es/cli/v1/deploy-resources/deploy-appsail//) en la consola. 8. Luego puedes configurar el [comando de inicio](https://docs.catalyst.zoho.com/es/serverless/help/appsail/key-concepts/appsail-execution/#startup-commands) que se proporciona a continuación desde la consola: ```java 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](https://docs.catalyst.zoho.com/es/serverless/help/appsail/key-concepts/appsail-execution/#custom-domain-url).