Entradas

PHP/Java Bridge: una integración posible, pero con riesgos

PHP/Java Bridge: una integración posible, pero con riesgos PHP/Java Bridge es una tecnología que permite invocar código Java desde PHP , delegando la ejecución a una JVM persistente que corre dentro de un contenedor de servlets , normalmente Apache Tomcat . Aunque hoy está obsoleta y fuera de soporte , sigue siendo posible hacerla funcionar , incluso en PHP 8 , siempre bajo configuraciones no estándar y asumiendo riesgos reales . Advertencia ⚠️ Proyecto sin mantenimiento ⚠️ Soporte oficial limitado a PHP 5 ⚠️ Funcionamiento en PHP 7/8 no garantizado ⚠️ Riesgos de seguridad y estabilidad ⚠️ Dependencia directa de un contenedor Java El uso de esta tecnología es bajo tu propia responsabilidad . No es una recomendación para producción. Por qué era necesario crear una aplicación web Uno de los puntos clave —y que suele olvidarse— es que PHP/Java Bridge exigía crear una aplicación web Java . No era opcional. La forma correcta de hacerlo era: Crear una aplicación web Java Empaquet...

Comunidad de programación web Java (Discord)

 Este servidor de Discord es un espacio complementario al blog para compartir recursos y experiencias sobre programación web en Java, con énfasis en Jetty, Servlets y Thymeleaf. El objetivo es: Compartir enlaces, ejemplos y documentación útil Conversar sobre desarrollo web con Java sin frameworks pesados Resolver dudas puntuales y comentar buenas prácticas No es un canal de soporte formal ni un chat permanente, sino un espacio de intercambio entre personas interesadas en desarrollo web Java. 👉 Enlace al Discord: https://discord.gg/YeDGK5aR

Cuando los jóvenes contratan programadores extranjeros

 No entiendo por qué muchas empresas fundadas por profesionales más jóvenes que yo —tengo 45 años— tienen la costumbre de contratar programadores extranjeros. Ya me ha pasado un par de veces: me llaman cuando el proyecto está en problemas, cuando hay que apagar incendios. No tengo nada en contra del talento extranjero; de hecho, puede funcionar muy bien en el frontend, donde el contexto local importa menos. Pero en el backend, la historia suele ser distinta. En uno de los casos, el desarrollador colombiano con el que hablé —supuestamente encargado del backend— me dijo: “Yo solo sé lo de la base de datos… ¿tú sabes leerla?” Esa fue toda la conversación. Nunca llegué a ver el código ni la estructura. En teoría, él solo debía enviarme un JSON para que mi API emitiera el documento electrónico, pero ni siquiera se llegó a ese punto. En otro proyecto, el programador —mexicano en este caso— insistía en que mi lógica era incorrecta, sin conocer cómo funciona la facturación electrónica en...

Cuando el "vibe coding" se convierte en desgaste

 Hace unas semanas me contactó un informático que trabajaba en la farmacia de su señora. Era de la misma carrera de Informática de mi casa de estudios, aunque él se dedicaba a soporte técnico . Me comentó: “Estoy haciendo un programa en Python para administrar la farmacia de mi señora y quiero añadirle boleta electrónica. Ojo, no soy programador, lo hice con ChatGPT.” En ese momento no entendí bien, pero luego comprendí que se trataba del famoso vibe coding : dejar que la IA escriba la mayor parte del código, sin planificación, estructura ni comprensión de fondo. El cliente me pagó las horas trabajadas, pero sinceramente, no fue un desafío técnico… fue un desgaste . No sabía qué herramientas o librerías estaba utilizando, y adaptar un script sencillo a ese entorno fue realmente complejo. Cada intento generaba nuevos prompts y versiones de código completamente distintas. Esa experiencia me dejó una conclusión muy clara: La IA puede ser una gran ayuda, pero cuando se us...

🚀 Integrando Thymeleaf en un Servlet Java

Hoy estuve trabajando en un servlet que utiliza Thymeleaf como motor de plantillas para manejar vistas dinámicas dentro de una aplicación Java tradicional (sin Spring Boot). Thymeleaf puede integrarse perfectamente en un proyecto basado en Servlets si se inicializa adecuadamente el TemplateEngine . Esto permite mantener una separación clara entre lógica y presentación, con vistas HTML procesadas dinámicamente desde el servidor. package com.egga.appventas.caja; import com.egga.appventas.include.ThymeleafConfig; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; import org.thymeleaf.TemplateEngine; import org.thymeleaf.context.Context; public class AdminCaja extends HttpServlet{ private TemplateEngine templateEngine; @Override public void init() { // Inicializaci...

Instalando Jetty fuera del IDE: una guía desde la documentación oficial

Mirando la documentación del sitio oficial de Jetty me encontré con esto: Jetty no está pensado para trabajar directamente con JSPs dentro de un IDE como NetBeans. Eso me obligó a salir de la comodidad del entorno y aprender a configurarlo desde cero, como un contenedor web independiente. En esta entrada compartiré los pasos que seguí para instalar Jetty de forma manual, fuera del IDE. Si estás buscando una alternativa liviana a Tomcat, esta guía puede ayudarte a comenzar. Paso 1: Descarga Jetty desde la página oficial Ve a https://eclipse.dev/jetty/download y descarga la versión estable más reciente. En mi caso, bajé el archivo ZIP correspondiente a Jetty 12. Paso 2: Descomprime y estructura Una vez descomprimido, verás una estructura como esta: jetty-home/ ├── bin/ ├── etc/ ├── lib/ ├── modules/ └── start.jar Paso 3: Crea el directorio de la aplicación (jetty-base) Jetty utiliza una estructura llamada jetty-base para alojar tu aplicación. Puedes crearla así: ...

❌ La debilidad de Jetty en entornos de desarrollo con JSP y NetBeans

Publicado por Esteban Guenul – julio 2025 Nota del autor: esta entrada está basada en una experiencia real mientras desarrollaba con JSPs en Jetty y NetBeans. El problema me obligó a reconsiderar mi flujo de trabajo. En el desarrollo web con Java, muchas veces se prefiere Jetty por su ligereza, velocidad de arranque y flexibilidad modular. Sin embargo, cuando se trabaja con JSPs y un IDE como NetBeans , es importante conocer una de sus principales debilidades: Jetty no ofrece un soporte directo y fluido para JSP en entornos de desarrollo integrados como sí lo hace Tomcat . 🔍 ¿Qué problema presenta Jetty con JSP? Cuando intentamos trabajar con páginas JSP directamente desde NetBeans usando Jetty como contenedor embebido o como servidor de ejecución, nos encontramos con: ❌ Falta de compilación automática de JSPs ❌ Sin integración IDE para visualizar cambios en tiempo real ❌ Errores de clase faltante o ClassNotFoundException al renderizar JSP ❌ Necesidad de configura...