You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by "Jay Freeman (saurik)" <sa...@saurik.com> on 2000/07/02 05:16:53 UTC

WAS_BORN_BY_APACHE and other problems...

Has anyone else been having problems using the current version of mod_jk
from the CVS?  Whenever I would try to go to a JkMount’d area I would get
messages that said mod_jk “did not found” the worker.  I finally had to go
into the source code for mod_jk.c and change:

            if(!env) {
                putenv("WAS_BORN_BY_APACHE=true");
                return;
            } else {
                if(wc_open(init_map, conf->log)) {
                    return;
                }
            }

to:

                putenv("WAS_BORN_BY_APACHE=true");
                if(wc_open(init_map, conf->log)) {
                    return;
                }

It looks like mod_jk is assuming that function is going to be called
multiple times, but after adding a lot of debugging information in various
points trying to track down the problem I an pretty sure mine ain’t :-) .
If anyone is interested, I’m running Apache 1.3.12 w/EAPI.

Oh, and if I load modules for PHP4/PHP3 (tried both) or mod_perl modules
before mod_jk Apache won’t even load (even if I don’t AddModule the PHP/perl
modules).  It tries, it seems to work fine, but it doesn’t fork any worker
processes before the original exits “normally”.

Still have a problem, though.  I can go to http://<testsite>:8080/examples/
<http://%3Ctestsite%3E:8080/examples/>  (or through mod_jk with the above
“fix”), get the static content and run the servlets.  JSP, however, doesn’t
work.  Whenever I try to run any of the sample JSP programs I get the
following error page:

Error: 500
Location:/examples/jsp/dates/date.jsp
Internal Servlet Error:

javax.servlet.ServletException: org.apache.jasper.JspCompilationContext:
method getClassLoader()Lorg/apache/jasper/runtime/JspLoader; not found
            at org.apache.jasper.servlet.JspServlet.service(JspServlet.java,
Compiled Code)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java,
Compiled Code)
            at
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java,
Compiled Code)
            at org.apache.tomcat.core.Handler.service(Handler.java, Compiled
Code)
            at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java, Compiled
Code)
            at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java,
Compiled Code)
            at
org.apache.tomcat.core.ContextManager.service(ContextManager.java, Compiled
Code)
            at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC
onnectionHandler.java, Compiled Code)
            at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java,
Compiled Code)
            at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java,
Compiled Code)
            at java.lang.Thread.run(Thread.java, Compiled Code)

Root cause:
java.lang.NoSuchMethodError: org.apache.jasper.JspCompilationContext: method
getClassLoader()Lorg/apache/jasper/runtime/JspLoader; not found
            at org.apache.jasper.compiler.Compiler.compile(Compiler.java,
Compiled Code)
            at
org.apache.jasper.servlet.JspServlet.doLoadJSP(JspServlet.java, Compiled
Code)
            at
org.apache.jasper.servlet.JasperLoader12.loadJSP(JasperLoader12.java,
Compiled Code)
            at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java,
Compiled Code)
            at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspSe
rvlet.java, Compiled Code)
            at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.ja
va, Compiled Code)
            at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java,
Compiled Code)
            at org.apache.jasper.servlet.JspServlet.service(JspServlet.java,
Compiled Code)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java,
Compiled Code)
            at
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java,
Compiled Code)
            at org.apache.tomcat.core.Handler.service(Handler.java, Compiled
Code)
            at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java, Compiled
Code)
            at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java,
Compiled Code)
            at
org.apache.tomcat.core.ContextManager.service(ContextManager.java, Compiled
Code)
            at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC
onnectionHandler.java, Compiled Code)
            at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java,
Compiled Code)
            at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java,
Compiled Code)
            at java.lang.Thread.run(Thread.java, Compiled Code)

I have yet to figure out what is causing this.  From jasper.log (loading the
page twice, clean work directory to start with), XML tags removed:

Sat Jul 01 21:29:17 CDT 2000 Parent class loader is: AdaptiveClassLoader(  )
Sat Jul 01 21:29:17 CDT 2000 Scratch dir for the JSP engine is:
/www/bin/jakarta-tomcat/work/localhost_8080%2Fexamples
Sat Jul 01 21:29:17 CDT 2000 IMPORTANT: Do not modify the generated servlets
Sat Jul 01 21:29:17 CDT 2000 Parent class loader is: AdaptiveClassLoader(  )
Sat Jul 01 21:29:18 CDT 2000 Parent class loader is: AdaptiveClassLoader(  )
Sat Jul 01 21:29:18 CDT 2000 Parent class loader is: AdaptiveClassLoader(  )
Sat Jul 01 21:29:23 CDT 2000 JspEngine --> /jsp/dates/date.jsp
Sat Jul 01 21:29:23 CDT 2000       ServletPath: /jsp/dates/date.jsp
Sat Jul 01 21:29:23 CDT 2000            PathInfo: null
Sat Jul 01 21:29:23 CDT 2000           RealPath:
/www/bin/jakarta-tomcat/webapps/examples/jsp/dates/date.jsp
Sat Jul 01 21:29:23 CDT 2000          RequestURI:
/examples/jsp/dates/date.jsp
Sat Jul 01 21:29:23 CDT 2000        QueryString: null Sat Jul 01 21:29:23
CDT 2000     Request Params:
Sat Jul 01 21:29:23 CDT 2000 Classpath according to the Servlet Engine is:
/www/bin/jakarta-tomcat/webapps/examples/WEB-INF/classes
Sat Jul 01 21:29:23 CDT 2000 Package name is: jsp.dates
Sat Jul 01 21:29:23 CDT 2000 Class file name is:
/www/bin/jakarta-tomcat/work/localhost_8080%2Fexamples/_0002fjsp_0002fdates_
0002fdate_0002ejspdate.class
Sat Jul 01 21:29:23 CDT 2000 Java file name is:
/www/bin/jakarta-tomcat/work/localhost_8080%2Fexamples/_0002fjsp_0002fdates_
0002fdate_0002ejspdate_jsp_0.java
Sat Jul 01 21:29:23 CDT 2000 Class name is:
_0002fjsp_0002fdates_0002fdate_0002ejspdate_jsp_0
Sat Jul 01 21:33:51 CDT 2000 JspEngine --> /jsp/dates/date.jsp
Sat Jul 01 21:33:51 CDT 2000       ServletPath: /jsp/dates/date.jsp Sat Jul
01 21:33:51 CDT 2000            PathInfo: null
Sat Jul 01 21:33:51 CDT 2000           RealPath:
/www/bin/jakarta-tomcat/webapps/examples/jsp/dates/date.jsp
Sat Jul 01 21:33:51 CDT 2000          RequestURI:
/examples/jsp/dates/date.jsp
Sat Jul 01 21:33:51 CDT 2000        QueryString: null Sat Jul 01 21:33:51
CDT 2000     Request Params:
Sat Jul 01 21:33:51 CDT 2000 Classpath according to the Servlet Engine is:
/www/bin/jakarta-tomcat/webapps/examples/WEB-INF/classes
Sat Jul 01 21:33:51 CDT 2000 Package name is: jsp.dates
Sat Jul 01 21:33:51 CDT 2000 Class file name is:
/www/bin/jakarta-tomcat/work/localhost_8080%2Fexamples/_0002fjsp_0002fdates_
0002fdate_0002ejspdate.class
Sat Jul 01 21:33:51 CDT 2000 Java file name is:
/www/bin/jakarta-tomcat/work/localhost_8080%2Fexamples/_0002fjsp_0002fdates_
0002fdate_0002ejspdate_jsp_0.java
Sat Jul 01 21:33:51 CDT 2000 Class name is:
_0002fjsp_0002fdates_0002fdate_0002ejspdate_jsp_0

Sincerely,
Jay Freeman (saurik)
saurik@saurik.com