You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by cr...@locus.apache.org on 2000/09/02 02:50:04 UTC
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core Constants.java StandardWrapper.java
craigmcc 00/09/01 17:50:04
Modified: catalina/src/share/org/apache/catalina/core Constants.java
StandardWrapper.java
Log:
Initial support for the <jsp-file> element of a servlet, which lets you
specify a JSP page, rather than a servlet class, to be the object that is
executed when this "servlet" is requested.
It appears that there needs to be some cooperation from Jasper in this --
I get "error 404" when I try it.
Revision Changes Path
1.4 +4 -3 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/Constants.java
Index: Constants.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/Constants.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Constants.java 2000/08/24 23:56:59 1.3
+++ Constants.java 2000/09/02 00:50:02 1.4
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/Constants.java,v 1.3 2000/08/24 23:56:59 craigmcc Exp $
- * $Revision: 1.3 $
- * $Date: 2000/08/24 23:56:59 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/Constants.java,v 1.4 2000/09/02 00:50:02 craigmcc Exp $
+ * $Revision: 1.4 $
+ * $Date: 2000/09/02 00:50:02 $
*
* ====================================================================
*
@@ -71,5 +71,6 @@
public static final int MAJOR_VERSION = 2;
public static final int MINOR_VERSION = 3;
+ public static final String JSP_SERVLET_NAME = "jsp";
}
1.6 +23 -13 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardWrapper.java
Index: StandardWrapper.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardWrapper.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- StandardWrapper.java 2000/08/24 22:37:08 1.5
+++ StandardWrapper.java 2000/09/02 00:50:03 1.6
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardWrapper.java,v 1.5 2000/08/24 22:37:08 craigmcc Exp $
- * $Revision: 1.5 $
- * $Date: 2000/08/24 22:37:08 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardWrapper.java,v 1.6 2000/09/02 00:50:03 craigmcc Exp $
+ * $Revision: 1.6 $
+ * $Date: 2000/09/02 00:50:03 $
*
* ====================================================================
*
@@ -100,7 +100,7 @@
* make them efficient are counter-productive.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.5 $ $Date: 2000/08/24 22:37:08 $
+ * @version $Revision: 1.6 $ $Date: 2000/09/02 00:50:03 $
*/
public final class StandardWrapper
@@ -675,9 +675,19 @@
if (instance != null)
return;
+ // If this "servlet" is really a JSP file, get the right class
+ // FIXME - This still does not solve all the problems, but it is
+ // pretty close to what Tomcat 3.x does
+ String actualClass = servletClass;
+ if ((actualClass == null) && (jspFile != null)) {
+ Wrapper jspWrapper = (Wrapper)
+ ((Context) getParent()).findChild(Constants.JSP_SERVLET_NAME);
+ if (jspWrapper != null)
+ actualClass = jspWrapper.getServletClass();
+ }
+
// Complain if no servlet class has been specified
- // FIXME - support for JSP file servlets!!!
- if (servletClass == null) {
+ if (actualClass == null) {
unavailable(null);
throw new ServletException
(sm.getString("standardWrapper.notClass", getName()));
@@ -691,7 +701,7 @@
(sm.getString("standardWrapper.missingLoader", getName()));
}
ClassLoader classLoader = loader.getClassLoader();
- if (isContainerServlet(servletClass)) {
+ if (isContainerServlet(actualClass)) {
classLoader = this.getClass().getClassLoader();
log(sm.getString
("standardWrapper.containerServlet", getName()));
@@ -701,19 +711,19 @@
Class classClass = null;
try {
if (classLoader != null)
- classClass = classLoader.loadClass(servletClass);
+ classClass = classLoader.loadClass(actualClass);
else
- classClass = Class.forName(servletClass);
+ classClass = Class.forName(actualClass);
} catch (ClassNotFoundException e) {
unavailable(null);
throw new ServletException
- (sm.getString("standardWrapper.missingClass", servletClass),
+ (sm.getString("standardWrapper.missingClass", actualClass),
e);
}
if (classClass == null) {
unavailable(null);
throw new ServletException
- (sm.getString("standardWrapper.missingClass", servletClass));
+ (sm.getString("standardWrapper.missingClass", actualClass));
}
// Instantiate and initialize an instance of the servlet class itself
@@ -723,11 +733,11 @@
} catch (ClassCastException e) {
unavailable(null);
throw new ServletException
- (sm.getString("standardWrapper.notServlet", servletClass), e);
+ (sm.getString("standardWrapper.notServlet", actualClass), e);
} catch (Throwable e) {
unavailable(null);
throw new ServletException
- (sm.getString("standardWrapper.instantiate", servletClass), e);
+ (sm.getString("standardWrapper.instantiate", actualClass), e);
}
// Call the initialization method of this servlet