You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Filip Hanik <fi...@filip.net> on 2001/01/10 08:13:40 UTC

BUG?: weird nullpointer exception

This is why this happens, I figured it out, but I believe it is a bug.

if you add in "activation.jar" in the WEB-INF/lib directory. the files will
not get loaded properly by the AdaptiveClassLoader

hence, when you try to execute a servlet in that context the
AdaptiveClassLoader.repository variable is null.
since I was under the impression that you should be able to put any jar
files under WEB-INF/lib I would consider this a bug.

*I'm proud* I figured this out after f***ing around with the source code for
a while.

Filip

----- Original Message -----
From: "Filip Hanik" <fi...@filip.net>
To: <to...@jakarta.apache.org>
Sent: Tuesday, January 09, 2001 9:47 PM
Subject: weird nullpointer exception


> Location: /rtx/GreeterBob
> Internal Servlet Error:
>
> java.lang.NullPointerException
>  at
>
org.apache.tomcat.loader.AdaptiveClassLoader.loadClass(AdaptiveClassLoader.j
> ava:471)
>  at
>
org.apache.tomcat.loader.AdaptiveServletLoader.loadClass(AdaptiveServletLoad
> er.java:174)
>  at
> org.apache.tomcat.core.ServletWrapper.loadServlet(ServletWrapper.java:265)
>  at org.apache.tomcat.core.ServletWrapper.init(ServletWrapper.java:289)
>  at org.apache.tomcat.core.Handler.service(Handler.java:254)
>  at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
>  at
>
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:79
> 7)
>  at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
>  at
>
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC
> onnectionHandler.java:210)
>  at
> org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
>  at
> org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
>  at java.lang.Thread.run(Thread.java:484)
>
> Any idea what this happens?
>
> Filip
>
> ----- Original Message -----
> From: Debra Mendelson, CCE
> To: tomcat-user@jakarta.apache.org
> Sent: Wednesday, January 10, 2001 12:39 AM
> Subject: Re: converting mod_jserv to mod_jk
>
>
> Got it working!!!  My correct
> tomcat-apache.conf:
>     LoadModule    jk_module  libexec/mod_jk.so
>     JkWorkersFile /app/conf/workers.properties
>     JkLogFile     /app/logs/mod_jk.log
>     JkLogLevel    error
>
>     JkMount /servlet1/* servlet1
>     JkMount /servlet2/* servlet2
>     JkMount /servlet3/* servlet3
>     JkMount /servlet4/* servlet4
>
> The asterisk was missing and important.
>
> I think the difference between one worker and many is a matter of function
> not style.
>
> In our case we want to have only 1 http server because we want to purchase
> only one SSL certificate (and other reasons).  Behind that https server we
> want to run several independent servlet engines.  I think the
> workers.properties is 1:1 with the httpd.conf file and thus needs to cover
> all the servlet engines behind the server.
>
> Thanks again for the hints and the discussion points.
> ----- Original Message -----
> From: Ed Gomolka
> To: tomcat-user@jakarta.apache.org
> Sent: Tuesday, January 09, 2001 1:46 PM
> Subject: RE: converting mod_jserv to mod_jk
>
>
> Your code appears to be missing a lot of the context information that is
> automatically generated in mod_jk.conf-auto.
> I would recommend that you forget about tomcat-apache.conf, and focus on
> modifying mod_jk.conf-auto.
> Also, did you make the startup.sh, shutdown.sh and server.xml changes to
> support the different Tomcat instances
> under mod_jk?
>
>
> Beyond that, I can't really say anything. I created individual
> workers.properties files whre you used one, but that should be more of
> a style issue than anything else.
>
>
> -----Original Message-----
> From: Debra Mendelson, CCE [mailto:debram@birthworks.org]
> Sent: Tuesday, January 09, 2001 5:47 PM
> To: tomcat-user@jakarta.apache.org
> Subject: Re: converting mod_jserv to mod_jk
>
>
> Thanks for the advice based on this and rereading the howto I came up with
> the following that still doesn't work.  Any ideas?:
>
> tomcat-apache.conf:
>     LoadModule    jk_module  libexec/mod_jk.so
>     JkWorkersFile /app/conf/workers.properties
>     JkLogFile     /app/logs/mod_jk.log
>     JkLogLevel    error
>
>     JkMount /servlet1 servlet1
>     JkMount /servlet2 servlet2
>     JkMount /servlet3 servlet3
>     JkMount /servlet4 servlet4
>
> /app/conf/workers.properties
>     worker.list=servlet1, servlet2, servlet3, servlet4
>     worker.servlet1.port=8009
>     worker.servlet1.host=localhost
>     worker.servlet1.type=ajp12
>
>     worker.servlet2.port=8017
>     worker.servlet2.host=localhost
>     worker.servlet2.type=ajp12
>
>     worker.servlet3.port=8012
>     worker.servlet3.host=localhost
>     worker.servlet3.type=ajp12
>
>     worker.servlet4.port=8013
>     worker.servlet4.host=localhost
>     worker.servlet4.type=ajp12
>
> ----- Original Message -----
> From: Ed Gomolka
> To: tomcat-user@jakarta.apache.org
> Sent: Tuesday, January 09, 2001 10:35 AM
> Subject: RE: converting mod_jserv to mod_jk
>
>
> I have tried setting up multiple Tomcat instances standalone, but I have
not
> tried to connect them to Apache,
> so I may not be able to help you all the way, but here goes:
>
> First, change the port references in the server.xml and workers.properties
> files, and rename these files to something else.
>
> Next, complete the standalone setup changes. (You will want to run
> standalone at least once, in order to configure mod_jk.conf-auto.)
>
> In order to run standalone, you need to change startup.sh and shutdown.sh
to
> point to the new server.xml file version, as follows:
>
>      $BASEDIR/tomcat.sh start -security -config ../conf/server_tst.xml
"$@"
>      and:
>     $BASEDIR/tomcat.sh stop -config ../conf/server_tst.xml "$@"
>
> Now, run Tomcat standalone to create the mod_jk.conf-auto file.
>
> You can then edit the mod_jk.conf-auto file to point to your new
> workers.properties file.
> If you are using AJP13, you will also have to perform additional manual
> edits in this file, as it is built for AJP12, regardless
> of what is in the workers.properties file.
> Finally, rename mod_jk.conf-auto and include it in httpd.conf.
> =========
> Now, repeat for your other Tomcat instances.
>
> Let me know if this works for you.
>
> Ed
>
> -----Original Message-----
> From: Debra Mendelson, CCE [mailto:debram@birthworks.org]
> Sent: Tuesday, January 09, 2001 3:03 AM
> To: tomcat-user@jakarta.apache.org
> Subject: converting mod_jserv to mod_jk
>
>
> I am trying to run multiple tomcat 3.2 servet engines behind 1 single
Apache
> 1.3.14 http server.
>
> Using mod_jserv I had the following tomcat-apache.conf file:
>
>  LoadModule jserv_module libexec/mod_jserv_tomcat.so
>       ApJServManual on
>       ApJServDefaultProtocol ajpv12
>       ApJServSecretKey DISABLED
>       ApJServMountCopy on
>       ApJServLogLevel notice
>       ApJServDefaultHost localhost
>       ApJServDefaultPort 8009
>
>       ApJServMount /servlet1 ajpv12://localhost:8009/servlet1
>       ApJServMount /servlet2 ajpv12://localhost:8017/servlet2
>       ApJServMount /servlet3 ajpv12://localhost:8012/servlet3
>       ApJServMount /servlet4 ajpv12://localhost:8013/servlet4
>
> In looking at the mod_jk.conf-auto auto file I do not see any directive
that
> specifies a port number.
>
> Does anyone have an example that I can try to immitate?
>
> Debra Mendelson
> debram@birthworks.org
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, email: tomcat-user-help@jakarta.apache.org