diff --git a/src/com/caucho/burlap/server/BurlapServlet.java b/src/com/caucho/burlap/server/BurlapServlet.java index ff49f8d..b333ac8 100644 --- a/src/com/caucho/burlap/server/BurlapServlet.java +++ b/src/com/caucho/burlap/server/BurlapServlet.java @@ -182,7 +182,7 @@ public void service(ServletRequest request, ServletResponse response) if (objectId == null) objectId = req.getParameter("ejbid"); - ServiceContext.begin(req, serviceId, objectId); + ServiceContext.begin(req, res, serviceId, objectId); try { InputStream is = request.getInputStream(); diff --git a/src/com/caucho/hessian/server/HessianServlet.java b/src/com/caucho/hessian/server/HessianServlet.java index 561bd56..ccecf54 100644 --- a/src/com/caucho/hessian/server/HessianServlet.java +++ b/src/com/caucho/hessian/server/HessianServlet.java @@ -365,7 +365,7 @@ public void service(ServletRequest request, ServletResponse response) if (objectId == null) objectId = req.getParameter("ejbid"); - ServiceContext.begin(req, serviceId, objectId); + ServiceContext.begin(req, res, serviceId, objectId); try { InputStream is = request.getInputStream(); diff --git a/src/com/caucho/services/server/ServiceContext.java b/src/com/caucho/services/server/ServiceContext.java index 5c45591..8f10db5 100644 --- a/src/com/caucho/services/server/ServiceContext.java +++ b/src/com/caucho/services/server/ServiceContext.java @@ -50,6 +50,8 @@ import javax.servlet.ServletException; import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; + import java.util.HashMap; /** @@ -59,6 +61,7 @@ public class ServiceContext { private static final ThreadLocal _localContext = new ThreadLocal(); private ServletRequest _request; + private ServletResponse _response; private String _serviceName; private String _objectId; private int _count; @@ -76,6 +79,7 @@ private ServiceContext() * @param objectId the object identifier */ public static void begin(ServletRequest request, + ServletResponse response, String serviceName, String objectId) throws ServletException @@ -88,6 +92,7 @@ public static void begin(ServletRequest request, } context._request = request; + context._response = response; context._serviceName = serviceName; context._objectId = objectId; context._count++; @@ -143,6 +148,19 @@ public static ServletRequest getContextRequest() return null; } + /** + * Returns the service request. + */ + public static ServletResponse getContextResponse() + { + ServiceContext context = (ServiceContext) _localContext.get(); + + if (context != null) + return context._response; + else + return null; + } + /** * Returns the service id, corresponding to the pathInfo of the URL. */