Thursday, February 3, 2011

Acceder al contexto del servlet desde una implemetacion de web service

¿Como desde una implemetacion de un Web service, puedo leer el contexto de un servlet?

La respuesta a esta pregunta, que a priori es muy sencilla, se vuelve un poco compleja. He estado buscando informacion por la red y he visto que la gente usaba Spring. Pero ¿para que? Así que, he seguido buscando y al final encontré una solucion para el estandar de J2EE 6 .

@webService
public class MiServicio{

@Resource
private WebServiceContext webServiceContext;
ServletContext  context;

public boolean damePath(){

if(webServiceContext != null){
            context=(ServletContext)webServiceContext.getMessageContext().get(MessageContext.SERVLET_CONTEXT);
return  context.getContextPath();
 }

}

}

 Hay muchos comentarios que al acceder al contexto, devuelve Null.  Esto es debido a que cuando llamas a un WS el metodo, no es persistente. Es decir las variables son inicializadas. Así que cada metodo del WS debe aceder a la carga del contexto para que este valor no sea nulo.

No comments:

Post a Comment