Estoy desarrollando un servicio RESTful utilizando Spring 3.0 ejecutándose en el entorno Apache 6.0 de Tomcat. Spring DispatcherServlet está configurado en "/ spring/*". El servlet Spring maneja múltiples clientes y tiene muchos controladores en la aplicación. Estoy agregando un nuevo Controlador para el servicio REST. Quiero que todos mis clases de controlador para tener un prefijo de identificación como "WS" (servicios web) para que la URL completa a un recurso se ve así:
http://<server>:<port>/<context>/spring/ws/service1
Agregar prefijo a las URL de todas las clases de controlador en el paquete
La única manera que encontré con la anotación de la primavera es @RequestMapping utilizar como esto:
@Controller
@RequestMapping("/ws/service1")
public class Service1 {
@RequestMapping(method=RequestMethod.GET)
@ResponseBody
public String getHtml() { ... }
....
}
Pero ya que tengo docenas de clases, no quiero poner el prefijo "/ WS" en cada clase. De modo que si otro desarrollador agrega un nuevo servicio, no tiene que recordar poner este prefijo y también si decidimos cambiar el nombre del prefijo de "/ ws" a otra cosa, no tengo que cambiar todos los archivos. Descubrí que la anotación @RequestMapping solo se aplica a Métodos o Clases y no a nivel de paquete.
¿Hay alguna manera de configurar que todos mis controladores REST sean accedidos con el prefijo?
Tenga en cuenta que no puedo cambiar la asignación de URL web.xml del servlet de Spring ya que hay otros controladores que se ejecutan con esa URL.
Su última oración es crucial: ¿podría ampliar lo que quiere decir con "otros controladores"? – skaffman
El servlet My Spring sirve un cliente Flex y yo uso el controlador BlazeDS para eso. El servidor Tomcat también tiene que servir contenido estático. El controlador RESTful se suma a eso. Por lo tanto, no puedo asignar la URL del servlet de Spring a "/ *" o "/ ws/*". – Shreerang