cancel
Showing results for 
Search instead for 
Did you mean: 

Response object in JSP Dyn page

Former Member
0 Kudos

Hi SAP EP Gurus,

I want to use response.setStatus() mehtod in jspdynpage but it is not working as expected. I am able to use other methods of response object like response.write().

As per my knowledge if i set response.setStatus(200) is should send error to client but it is not seding error.

It is working as same for both response.setStatus(200) and response.setStatus(500).

Is there any special way to use response.setStatus() in portal? It is working as expected in normal jsp application.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos
Former Member
0 Kudos

Thanks for reply!! But I am not able to use in EP scenario. These are working fine in normal JSP application.

I imported import com.sapportals.portal.prt.component.* package and used foloowing code.

IPortalComponentRequest request = (IPortalComponentRequest) this.getRequest();

IPortalComponentResponse resp = (IPortalComponentResponse) this.getResponse();

resp.setStatus(500);

but setting 500 and 200 both are giving same result. I am expecting an error message in case of 500.

Former Member
0 Kudos

Amit,

did u try using sendError()

Thanks

Bala Duvvuri

Former Member
0 Kudos

I didn't find any method like response.sendError(). If it is there plz tell me how to use that......

Former Member
0 Kudos

Hi,

I think you have to use the HttpServletResponse object instead of the IPortalComponentResponse object.

Typically you get the IPortalComponentResponse and IPortalComponentRequest objects in your JSP Dynpage (btw also in the Abstract Portal Component).

Then you can get the HttpServletResponse object by the following code:


HttpServletResponse servletResponse = request.getServletResponse(true); //suppose request is a IPortalComponentRequest
servletResponse.setStatus(500); //should work now...

Former Member
0 Kudos

Thanks Clemens !!!

Do I need to import any special package for that? Any JAR ??

Former Member
0 Kudos

You have to import javax.servlet.http.* and you need the servlet.jar in your classpath (it is located in your NWDS plugin folder somewhere... you should anyway use a tool like ClassLocator to quickly find JAR files that you need in your portal projects.

Former Member
0 Kudos

I tried but had no luck. Below is my JSPDYNPAGE code...

<%@ page import="javax.servlet.http.HttpServletResponse" %>

<%@ page import="com.sapportals.portal.prt.component.IPortalComponentRequest,com.sapportals.portal.prt.component.IPortalComponentResponse"%>

<HTML>

<head>

</head>

<body>

<%

IPortalComponentRequest request = (IPortalComponentRequest) this.getRequest();

HttpServletResponse servletResponse = request.getServletResponse(true);esss

servletResponse.setStatus(500);

%>

</body>

</HTML>

It is not working showing portal run time error

Former Member
0 Kudos

You should look into the log file for analyzing the error, but anyway, I think there is a problem when you retrieve the request object. Try this code instead:


<%@ page import = "com.sapportals.portal.prt.runtime.PortalRuntime" %>
<%@ page import = "com.sapportals.portal.prt.component.IPortalComponentRequest" %>
<%@ page import = "javax.servlet.http.HttpServletResponse" %>

<%
IPortalComponentRequest currentRequest =(IPortalComponentRequest)pageContext.getAttribute(javax.servlet.jsp.PageContext.REQUEST);

HttpServletResponse servletResponse = currentRequest.getServletResponse(true);
servletResponse.setStatus(500);
%>

If the servlet.jar is in your class path this code will work.

Former Member
0 Kudos

Thanks a bunch Clemens !!!

I tried and it is working as expected now i am able to use all servlet response method

Answers (0)