NullPointerException in Tomcat startup in TC14

Issues and Questions related to running Apache Tomcat on z/OS
Post Reply
JonBrock
Posts: 5
Joined: Wed Jul 19, 2006 8:30 am
Location: Greenville, SC

NullPointerException in Tomcat startup in TC14

Post by JonBrock »

Howdy!
I have downloaded and installed Java 1.4.2, JZOS 1.2.4, and Tomcat 5.0.28. Java and JZOS seem to be properly installed; "java -version" gives me what I expect to see, and the RUN14 job gives me "Hello, world!" the way it should. Tomcat, however, is being as stubborn as, well, a tomcat.

Having added three jar files in TOMCAT_HOME/server/lib/ -- tomcat-util.jar, commons-digester.jar, and commons-beanutils.jar -- to get past various NoClassDefFoundErrors, I now get the following in STDOUT:
Can't load server.xml
Can't load server.xml


STDERR shows:
Jul 19, 2006 1:33:31 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 0 ms
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
at java.lang.reflect.Method.invoke(Method.java:391)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)
Caused by: java.lang.NullPointerException
at org.apache.catalina.startup.Catalina.await(Catalina.java:619)
at org.apache.catalina.startup.Catalina.start(Catalina.java:579)
... 7 more


Here is the SYSOUT:

JZOSVM14(N): log level has been set to: I
JZOSVM14(N): Copyright (C) IBM Corp. 2005. All rights reserved.
JZOSVM14(N): Version 1.2.4
JZOSVM14(I): Region requested = 0K, Actual below/above limit = 9M / 1667M
JZOSVM14(I): JAVA_PROPAGATE=NO
JZOSVM14(I): PATH=/bin:/opt/java/J1.4/bin:
JZOSVM14(I): IBM_JAVA_ZOS_TDUMP=NO
JZOSVM14(I): JZOS_HOME=/opt/java/jzos
JZOSVM14(I): IBM_JAVA_OPTIONS=-Xms64m -Xmx128m -Dfile.encoding=ISO8859-1 -Djzos.home=/opt/java/jzos -Dcatalina.base=/opt
/java/tomcat -Dcatalina.home=/opt/java/tomcat -Djava.io.tmpdir=/opt/java/tomcat/temp -Djava.endorsed.dirs=/opt/java/tomc
at/common/endor
sed
JZOSVM14(I): _=/bin/env
JZOSVM14(I): CLASSPATH=/opt/java/J1.4/lib/tools.jar:/opt/java/tomcat/bin/bootstrap.jar:/opt/java/tomcat/server/lib/tomca
t-util.jar:/opt/java/tomcat/server/lib/commons-digester.jar:/opt/java/tomcat/server/lib/commons-beanutils.jar:/opt/java/
jzos/jzos.jar:
JZOSVM14(I): LIBPATH=/lib:/usr/lib:/opt/java/J1.4/bin:/opt/java/J1.4/bin/classic:/opt/java/jzos:
JZOSVM14(I): JAVA_DUMP_HEAP=false
JZOSVM14(I): JAVA_HOME=/opt/java/J1.4
JZOSVM14(N): Java Virtual Machine created. Version information follows:
java version "1.4.2"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2)
Classic VM (build 1.4.2, J2RE 1.4.2 IBM z/OS Persistent Reusable VM build cm142-20060421 (SR5) (JIT enabled: jitc))
JZOSVM14(I): Using output encoding: 'IBM-1047'
JZOSVM14(I): MVS commands are ENABLED
JZOSVM14(I): Java main class: org.apache.catalina.startup.Bootstrap
JZOSVM14(I): Arg 1='start'
JZOSVM14(N): Invoking org.apache.catalina.startup.Bootstrap.main()
JZOSVM14(N): org.apache.catalina.startup.Bootstrap.main() completed.
JZOSVM14(I): Waiting for non-deamon Java threads to finish before exiting...


When I go into OMVS and do a "cat /opt/java/tomcat/conf/server.xml" (which is the only place I can find server.xml), it shows me garbage. If I perform a binary download of server.xml to my PC it appears to be legible ASCII XML. Is this correct, or should it be readable inside OMVS? I have been searching on the NPE in Catalina, but so far with no joy. Any suggestions?


Thanks,
Jon
dovetail
Site Admin
Posts: 2022
Joined: Thu Jul 29, 2004 12:12 pm

Post by dovetail »

- You should not have to add jars if you are running Tomcat 5.0.28 on JDK 1.4. This indicates that you have some other problem and probably have not unjarred the Tomcat distribution correctly. I would suggest that you start over with a fresh Tomcat install and follow the instruction at http://dovetail.com/docs/tomcat.html.

- If you still have problems, please post the JZOS log using "LOGLVL=+D".
JonBrock
Posts: 5
Joined: Wed Jul 19, 2006 8:30 am
Location: Greenville, SC

Post by JonBrock »

OK, I have redone the install, and I am still having problems. Here is what I did:

Downloaded binary distribution of Tomcat core jakarta-tomcat-5.0.28.zip from tomcat.apache.org. Verified MD5.

Binary FTP of jakarta-tomcat-5.0.28.zip to Unix System Services directory /opt/java

jar -xvf jakarta-tomcat-5.0.28.zip -- this looked like it ran fine, but I didn't redirect the output to a file. At any rate, I didn't see any error messages, and all of the file names that I saw looked OK.

ln -s jakarta-tomcat-5.0.28 tomcat

Couldn't download JCL mentioned in step 6 on dovetail.com/docs/tomcat.html -- got error 404. I assume this looks something like JZOS.SAMPJCL(TC14), so that is what I am trying to use. this is the result:

SYSOUT:

Code: Select all

07:49:13 JZOSVM14(N): log level has been set to: D
 07:49:14 JZOSVM14(N): Copyright (C) IBM Corp. 2005. All rights reserved.
 07:49:14 JZOSVM14(N): Version 1.2.4
 07:49:14 JZOSVM14(I): Region requested = 0K, Actual below/above limit = 9M / 1667M
 07:49:16 JZOSVM14(D): Output from DD:STDENV config shell script:
 07:49:19 JZOSVM14(D): ___JZOS_ENV_START___
 07:49:22 JZOSVM14(I): JAVA_PROPAGATE=NO
 07:49:22 JZOSVM14(I): PATH=/bin:/opt/java/J1.4/bin:
 07:49:22 JZOSVM14(I): IBM_JAVA_ZOS_TDUMP=NO
 07:49:22 JZOSVM14(I): JZOS_HOME=/opt/java/jzos
 07:49:22 JZOSVM14(I): IBM_JAVA_OPTIONS=-Xms64m -Xmx128m -Dfile.encoding=ISO8859-1 -Djzos.home=/opt/java/jzos
 -Dcatalina.base=/opt/java/tomcat -Dcatalina.home=/opt/java/tomcat -Djava.io.tmpdir=/opt/java/tomcat/temp
 -Djava.endorsed.dirs=/opt/java/tomcat/com
 mon/endorsed
 07:49:22 JZOSVM14(I): _=/bin/env
 07:49:22 JZOSVM14(I): CLASSPATH=/opt/java/J1.4/lib/tools.jar:/opt/java/tomcat/bin/bootstrap.jar:/opt/java/jzos/jzos.jar:
 07:49:22 JZOSVM14(I): LIBPATH=/lib:/usr/lib:/opt/java/J1.4/bin:/opt/java/J1.4/bin/classic:/opt/java/jzos:
 07:49:22 JZOSVM14(I): JAVA_DUMP_HEAP=false
 07:49:22 JZOSVM14(I): JAVA_HOME=/opt/java/J1.4
 07:49:22 JZOSVM14(D): ___JZOS_ENV_STOP___
 07:49:23 JZOSVM14(D): argBuf=''
 07:49:29 JZOSVM14(N): Java Virtual Machine created.  Version information follows:
 07:49:34 JZOSVM14(D): About to invoke com.dovetail.jzos.ZUtil.getJavaVersionInfo()
 java version "1.4.2"
 Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2)
 Classic VM (build 1.4.2, J2RE 1.4.2 IBM z/OS Persistent Reusable VM build cm142-20060421 (SR5) (JIT enabled: jitc))
 07:49:34 JZOSVM14(D): About to invoke com.dovetail.jzos.ZUtil.redirectStandardStreams()
 07:49:35 JZOSVM14(I): Using output encoding: 'IBM-1047'
 07:49:35 JZOSVM14(I): MVS commands are ENABLED
 07:49:35 JZOSVM14(D): About to invoke com.dovetail.jzos.ZUtil.establishMvsCommandWaiter()
 07:49:35 JZOSVM14(I): Java main class: org.apache.catalina.startup.Bootstrap
 07:49:35 JZOSVM14(I): Arg 1='start'
 07:49:35 JZOSVM14(N): Invoking org.apache.catalina.startup.Bootstrap.main()
 07:49:35 JZOSVM14(D): About to invoke org.apache.catalina.startup.Bootstrap.main()
 07:50:12 JZOSVM14(N): org.apache.catalina.startup.Bootstrap.main() completed.
 07:50:12 JZOSVM14(I): Waiting for non-deamon Java threads to finish before exiting...
STDERR:

Code: Select all

java.lang.NoClassDefFoundError: org/apache/tomcat/util/log/SystemLogHandler
 	at java.lang.Class.getDeclaredConstructors0(Native Method)
 	at java.lang.Class.privateGetDeclaredConstructors(Class.java:1747)
 	at java.lang.Class.getConstructor1(Class.java:2063)
 	at java.lang.Class.newInstance3(Class.java:331)
 	at java.lang.Class.newInstance(Class.java:305)
 	at org.apache.catalina.startup.Bootstrap.init(Bootstrap.java:208)
 	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:402)
This is what happened on my first try. (That's why I added the .jar files to the CLASSPATH the first time through.)

Thanks,
Jon
coz
Posts: 391
Joined: Fri Jul 30, 2004 5:29 pm

Post by coz »

Jon,

We are trying to track down the cause of this problem - we're seeing it in possibly several forms. Could you please set up Tomcat debug logging as described below and send your log output to info@dovetail.com. Also, please perform a directory listing with permissions:

cd $CATALINA_BASE
ls -R -l > permlist.txt

And send that to us as well.

Thanks.


Tomcat debug logging setup:
============================================
1.) Create an ASCII file /<yourhome>/logging.properties and add the following lines:

handlers= java.util.logging.ConsoleHandler
org.apache.catalina.level=FINE
java.util .logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

Reminder: this file MUST be in an ASCII codepage (ISO-8859-1 is fine).

2.) Add the following line to your Tomcat JCL:
IJO="$IJO -Djava.util.logging.config.file=/<yourhome>/logging.properties"

Re submit the JCL. The debug output will show in STDERR DD. Either post here, or send to info@dovetail.com so we can take a look.
JonBrock
Posts: 5
Joined: Wed Jul 19, 2006 8:30 am
Location: Greenville, SC

Post by JonBrock »

Will do. I'll try to get that done tonight or tomorrow.

Thanks,
Jon
JonBrock
Posts: 5
Joined: Wed Jul 19, 2006 8:30 am
Location: Greenville, SC

Post by JonBrock »

I have just emailed you the output of the "ls -R -l" command and of my TC14 run with the debugging information. I hope it helps.

If there's anything else I can get for you, just let me know.

Thanks,
Jon
JonBrock
Posts: 5
Joined: Wed Jul 19, 2006 8:30 am
Location: Greenville, SC

Post by JonBrock »

Just for the sake of anyone else who may experience this problem, after conferring with Kirk Wolf, he pointed me to the source of the problem: the MAXFILEPROC parameter in my BPXPRM member was too small. I changed it from 64 to 256 (and also changed MAXPROCUSER from 250 to 1024 while I was at it), and now Tomcat comes up cleanly.


Thanks,
Jon
Post Reply