Hello list,

I have a strange classloading problem, that only occurs when my webapp is
deployed by tomcat (aka when tomcat expands the .war file during startup).

I'm using Tomcat 8, Java 8 and a few old Axis webservices.

The very first call to the webservice now fails with a RuntimeException
that is thrown by the axis code. The error message is "No compiler found in
your classpath!  (you may need to add 'tools.jar')".

Strangely all following calls to the webservice work without error (so
tools.jar is there after all). Even after a server restart, it still works.

However, if I stop tomcat, delete the expanded directory of the webapp in
the 'deploy' dir and restart Tomcat, the very first call fails again.


I tried adding tolls.jar explicitly to the classpath in all ways that are
described in the tomcat documentation, and it did not change a thing.

I tried to force Tomcat to run with a JDK instead of a JRE, but that did
not help either.

Another lead to follow is, that it worked with java 7. Also Axis itself may
be the source of the problem, so im working in that direction too.


Now, with the help of this list im trying to follow the other 2 leads I
have:

1. Why is there a difference in classloading when tomcat deploys a webapp
on startup that is already expanded compared to the case that there is only
a .war found? Or maybe more to the point: what does tomcat do differently
in those 2 usecases?

2. When running tomcat with a JDK, it still puts this into the logfile:

Server version: Apache Tomcat/8.0.15
Server built: Nov 2 2014 19:25:20 UTC
Server number: 8.0.15.0
OS Name: Windows Server 2008 R2
OS Version: 6.1
Architecture: x86
JAVA_HOME: *C:\Dev\Java\jdk1.8.0_25\jre*
JVM Version: 1.8.0_25-b18
JVM Vendor: Oracle Corporation

so its still running with a JRE. Any way to get it to use the JDK?


Thanks in advance,
John

Reply via email to