Return-Path: Mailing-List: contact tomcat-dev-help@jakarta.apache.org; run by ezmlm Delivered-To: mailing list tomcat-dev@jakarta.apache.org Received: (qmail 27991 invoked from network); 25 Aug 2000 20:42:06 -0000 Received: from mercury.sun.com (192.9.25.1) by locus.apache.org with SMTP; 25 Aug 2000 20:42:06 -0000 Received: from amon.Central.Sun.COM ([129.147.4.240]) by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id NAA29492 for ; Fri, 25 Aug 2000 13:42:05 -0700 (PDT) Received: from sunray11 (sunray11 [129.147.71.13]) by amon.Central.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v1.7) with SMTP id OAA24443 for ; Fri, 25 Aug 2000 14:42:05 -0600 (MDT) Message-Id: <200008252042.OAA24443@amon.Central.Sun.COM> Date: Fri, 25 Aug 2000 14:42:04 -0600 (MDT) From: Arieh Markel Reply-To: Arieh Markel Subject: More problems with migration to 3.2 To: tomcat-dev@jakarta.apache.org MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii Content-MD5: Sjf5wy8k8QNR9IrjBpHspg== X-Mailer: dtmail 1.3.0 @(#)CDE Version 1.3.5 SunOS 5.7 sun4u sparc X-Spam-Rating: locus.apache.org 1.6.2 0/1000/N Here is a stack trace for an exception from a servlet that used to work on 3.1. The servlet is a /launch servlet. Invocation of the servlet is as follows: http:/launch?node= Based on the 'nodeid', an object search is done and a reference (actually a remote reference) is obtained for that object. A specific servlet that is matched to the class of the referenced object is identified. If it has not been created, it will be instantiated and added to the 'dynamic' context. The /launch servlet will perform a 'forward' to the servlet selected. The following is the code that performs that: if (null != servInfo[0]) { String servletPath = servInfo[0] + "?" + Constants.URLAttribute.Node + "=" + URLEncoder.encode (node) + "&" + Constants.URLAttribute.Family + "=" + URLEncoder.encode (familyName) + "&" + Constants.URLAttribute.Session + "=" + sessionId; ServletContext sctx = getServletContext(); RequestDispatcher rd = null; if (null != sc.getServletByName (servInfo[0])) { ServletContext lc = sctx.getContext(servletPath); rd = lc.getRequestDispatcher(servletPath); } // if there has never been a dispatcher established // for the servlet path, we will install the servlet // boolean goodInstall = false; if (rd == null) { goodInstall = ServletMgr.installServlet (servInfo[0], servInfo[1], sc); if (goodInstall) { ServletContext lc = sctx.getContext(servletPath); rd = lc.getRequestDispatcher(servletPath); } } The exception below occurs in the 'lc.getRequestDispatcher(servletPath)' statement: Error: 500 Location:/launch Internal Servlet Error: java.lang.NoClassDefFoundError: org/apache/tomcat/facade/RequestDispatcherImpl at org.apache.tomcat.facade.ServletContextFacade.getRequestDispatcher(ServletContex tFacade.java:157) at com.sun.esm.web.console.launch.Launch.redirect(Launch.java:129) at com.sun.esm.web.console.launch.Launch.doGet(Launch.java:320) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at com.sun.esm.web.servlet.CMCServlet.service(CMCServlet.java:395) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.tomcat.facade.ServletWrapper.doService(ServletWrapper.java:417) at org.apache.tomcat.facade.ServletWrapper.doService(ServletWrapper.java:404) at org.apache.tomcat.core.Handler.service(Compiled Code) at org.apache.tomcat.facade.ServletWrapper.service(ServletWrapper.java:387) at org.apache.tomcat.core.ContextManager.internalService(Compiled Code) at org.apache.tomcat.core.ContextManager.service(Compiled Code) at org.apache.tomcat.service.http.HttpInterceptor.processConnection(Compiled Code) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(Compiled Code) at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(Compiled Code) at java.lang.Thread.run(Compiled Code) I checked my CLASSPATH and invoked 'javap' on the environment on which I start Tomcat, and I can find the RequestDispatcherImpl class. It is not clear to me why the class is not found. ---- On the problem I sent earlier. I proceeded to try to access the application servlets and webpages from the HttpInterceptor (which I assume is not a PoolTcpConnector) and I am able to have more of the content displayed. ---- Have any changes been done to the PrintWriter that is found on the HttpServletRequest ? My traces show that the code goes through the statements that should be outputting to the HTTP connection, yet nothing is displayed. Thanks, Arieh -- Arieh Markel Sun Microsystems Inc. Network Storage 500 Eldorado Blvd. MS UBRM11-194 e-mail: arieh.markel@sun.COM Broomfield, CO 80021 Let's go Panthers !!!! Phone: (303) 272-8547 x78547 (e-mail me with subject SEND PUBLIC KEY to get public key)