Pregunta

¿Cómo haría para escribir código para permitir el acceso a una clase Java en mi aplicación web desde la línea de comandos?

P.ej.Tengo una clase Java con interfaz de línea de comandos, que puede ejecutar código en el contexto de la aplicación web, con acceso a la base de datos, etc.Quiero iniciar sesión en la máquina que aloja mi aplicación WARred en Tomcat y poder interactuar con ella.

¿Dónde debería empezar a buscar?

Gracias

¿Fue útil?

Solución

¿Solo desea ejecutar archivos de clase que están incluidos en WAR, o desea no interactuar con la instancia WAR real en ejecución?Si es lo primero, entonces WAR es solo un archivo Jar normal y puede ejecutar clases en él como cualquier otro archivo Jar.

Si desea interactuar con WAR en ejecución, es posible que desee mirar JMX.

Todos los JDK actuales (al menos 1.5+) vienen con JMX "gratis".Es fácil crear pequeñas clases de interfaz para usarlas como comandos para interactuar con su WAR.

Luego, necesitaría crear un programa de línea de comando que se conecte a WAR a través de JMX, o puede usar una herramienta como JConsole (que viene con el JDK, pero es una GUI) para interactuar con su instancia.También existen otros clientes JMX.

Si nada de eso resulta atractivo, siempre existen los servicios web.

Otros consejos

Una sugerencia:Su clase de interfaz de línea de comando debe aceptar un InputStream como entrada y proporcionar un OutputStream (no puede codificar la salida en System.out y la entrada en System.in) en el que se escribirá su salida.Luego tendrás que escribir una clase de servidor que escuche las conexiones en un puerto determinado.Cuando se establece una conexión, el servidor tomará el InputStream de la conexión y se lo entregará a la clase de línea de comando que proporcionará el OutputStream en el que los datos escritos se pasarán al cliente que realizó la conexión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top