2011-08-30 22 views
5

Tengo que llamar a un servlet escrito en Java desde la aplicación web Clojure, y no entiendo cómo hacerlo.¿es posible llamar al servlet java desde ring/compojure?

Desarrollando una aplicación web en Java, tuve que describir todas las asignaciones en web.xml. En Compojure, veo, debo describir las rutas. Entonces, ¿puedo vincular el servlet de Java a una de esas rutas?

Disculpa si mi pregunta es estúpida, pero he buscado mucho y no he encontrado una respuesta; Estoy empezando a desarrollar para la web.

+0

Ahora estoy explorando los paquetes de prueba proporcionados por Ring. Descubrí que Ring permite transformar sus manejadores en servlets. Hay una función run-servlet que realmente hace lo que yo quiero: llama al servlet construido desde el manejador invocando su método de servicio. Pero por el momento no puedo decir que sé cómo usarlo de manera correcta, porque todavía hay mucho por explorar y probar. –

Respuesta

2

Dos punteros votos:

Hay un ejemplo sobre cómo generar el servlet Vaadin completamente de Clojure en github

Y aquí es una pregunta SO en how to map a java filter to routes

+0

He visto el mismo ejemplo para Vaadin donde se implementó la clase servlet en Clojure con proxy. Funciona perfectamente y en parte cumple mis objetivos, pero no del todo. He visto la pregunta sobre el filtro de servlet. La solución se basa en el nivel del contenedor de servlets. No coincide con mis deseos, porque está basado en el nivel del contenedor de servlets, pero Ring proporciona un adaptador solo para embarcadero. Solucionarme si estoy equivocado. Necesito manejar todas las asignaciones de Java y Clojure por Compojure/ring independientemente del contenedor de servlet específico. –

0

sugiero, sólo hay un camino para hacer frente a mis tareas. Tengo que instanciar manualmente los servlets de Java en la aplicación web Clojure y formar sus parámetros de solicitud y respuesta. Test package para la biblioteca ring.util.servlet describe este enfoque en detalle, pero en caso de convertir el controlador Ring en un servlet Java.

En caso de implementar la aplicación Clojure y los servlets de Java en el contenedor de servlets por separado, no es necesario definir rutas Compojure adicionales o manejadores de timbre en rutas mapeadas por contenedor.

Por favor dígame si mis sugerencias son incorrectas.

Cuestiones relacionadas