![]() |
| ||
| URGENT: JSP - StackOverFlow Error Hi All! I've been working on a simple MVC style / struts web application which will allow a user to view a product database and have the option to update a record. The initial index.jsp page works and forwards to the right locations, the update page displays but is producing another error but that is not within the scope of this question. When i click to view the product database, I get the following error in Apache Tomcat (note I am using built in Tomcat within Netbeans 5.0) I have done searches on the Web and they say that this method is being called recursively? However, when I run a System.out.println to show the SQL query it displays fine with no problems. Also it is not showing errors with other methods, so I assume that it is stuck on this getPid method. I hope someone can shed some light on this matter. Thanks Apache Tomcat Error HTTP Status 500 - type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781) org.apache.jsp.viewprod_jsp._jspService(viewprod_jsp.java:112) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362) org.apache.struts.action.ActionServlet.processForward(ActionServlet.java:1848) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1569) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:492) javax.servlet.http.HttpServlet.service(HttpServlet.java:689) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362) root cause java.lang.StackOverflowError elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid .... THIS CONTINUES TILL THE END OF THE PAGE .... (UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid(UpdateBean.java:16) elecstore.UpdateBean.getPid (UpdateBean.java:16) note The full stack trace of the root cause is available in the Apache Tomcat/5.5.9 logs. Apache Tomcat/5.5.9 UpdateBean.java package elecstore; Products.java package elecstore; ActionUpdate.java package elecstore; UpdateForm.java package elecstore; |
| ||
| Re: URGENT: JSP - StackOverFlow Error UPDATE Here are the Jsp files, after some debugging both pages display, just when I add in the jsp:getproperty then I get the StackOverflowError. How can i get the JSP to use these values but not cause this Overflow error? index.jsp <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> viewprod.jsp (without jsp:getproperty set) <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> viewprod.jsp (with jsp:getproperty set) (THIS IS WHERE THE STACKOVERFLOW OCCURS...) <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> update.jsp <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
| ||
| Re: URGENT: JSP - StackOverFlow Error Uhm ... Look at your UpdateBean code. All of your get/set routines do nothing but call themselves. They should actually return/set something from the actual Bean, not just simply call themselves. When all they do is call themselves, you have a classic case of infinite recursion. I assume you meant to call routines of the same name from the p instance. If this is the case, you forgot to put "p." in front of the subroutine calls inside of your set/get routines. |
| ||
| Re: URGENT: JSP - StackOverFlow Error Thanks for that advice, yes I changed that in my code and I got a result, but it is only returning the last record information. Even though the System.out.println displays all records. How would you do it for displaying in the JSP? As I said only the last record data is being shown? Any ideas? Selectbean.java /* viewprod.jsp <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
| ||
| Re: URGENT: JSP - StackOverFlow Error In your while (rs.next( ) ) loop, you are recreating "p" everytime. So, only the last line is available. You would need to use some sort of Collection (ArrayList probably) to be able to store all the records, but then, you would also have to figure out a way determine which record you wish to return the data for. Also, your jsp is currently only set up to show one record as well. Building the table you want is going take a bit more planning. Look into JSTL loops and, probably, a more direct database query. |
| All times are GMT -4. The time now is 3:45 am. |
Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC