cancel
Showing results for 
Search instead for 
Did you mean: 

Behavior of JSP pages with explicit page extends clause

Former Member
0 Kudos

Hi,

I've got problems when deploying our application to SAP Netweaver. Our application uses JSP pages that heavily depend on the mechanism that allows to define a custom super class for the page implementation class (see "JSP.8.2.4 Using the extends Attribute" of the JSP specification).

Assume the following scenario:

A JSP page A.jsp extends a custom super class B (using the <%@ page extends="B" %> directive). B implements the servlet interface “Servlet” and calls _jspService() from its service() method. Additionally, our custom super class for our JSP pages perform some setup work before calling _jspService() and some tear down actions after the control flow returns from _jspService().

Our understanding of the JSP specification is that the container must call the service() method of the class generated from A.jsp (at least, if the servlet page has an extends declaration). This is also the behavior, we see in the Apache Tomcat container.

However, when setting a breakpoint in some method that is called from the JSP page, we can observe the following stack trace in SAP NetWeaver:


  C.foo()    // Break point set here
  jsp_ContentXXXX._jspService()   // the generated class from A.jsp
  JSPServlet.service()    // Service class from the container
  .... 

This suggests that the container directly calls the _jspService() method of the class generated from A.jsp and bypasses the inherited service() method. This behavior disables our required setup and tear down actions and renders our application non-functional.

In Apache Tomcat, the corresponding stack trace looks like the following:


  C.foo()    // Break point set here
  jsp_ContentXXXX._jspService()   // the generated class from A.jsp
<b>  jsp_ContentXXXX.service()   // the inherited service method from B</b>
  JSPServlet.service()    // Service class from the container
  .... 

Here, the flow of control passes through the inherited service() method as expected. This is what's also described in the "SAP NetWeaver Developer's Guide" release "SAP NetWeaver 2004s" on page 92 in section "3.7.17.4 JSP Servlet".

Is the behavior regarding JSP pages with custom extends declarations a known problem in NetWeaver?

Since this greatly influences our chances to have our application certified "Powered by SAP NetWeaver", any help is highly appreciated.

Best regards

Bernhard Haumacher

--

Business Operation Systems GmbH

Rüsselsheimer Straße 22

D-60326 Frankfurt am Main

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi Bernhard,

first of all, sorry for the late reply.

I was able to talk to developers responsible for the web container in the Web AS Java, and they admitted this is a problem. They'll correct it with any of the upcoming service packs of NW04. However, if you really want to be in close contact and be informed of the progress, i'd recommend that you report the issue as an OSS message.

Thanks for bringing up the issue to our attention!

Benny
Product and Topic Expert
Product and Topic Expert
0 Kudos

It's a much better idea to post this under Java development!

Regadrs,

Benny