Details
Description
When running Tomcat as a service under Windows (thus using Daemon/procrun), if you mess up the Java Virtual Machine path in the service configurator, it defaults to the JAVA_HOME JRE, which I suppose is okay (but can wreak havoc when you have multiple Java versions installed), except that it doesn't warn you about it. It tells you about it through a DEBUG message, instead, so you have to actually increase the logging detail and wade through more messages to even realize it happened:
[2012-03-20 16:32:41] [debug] ( prunsrv.c:1644) Commons Daemon procrun log initialized
[2012-03-20 16:32:41] [info] ( prunsrv.c:1648) Commons Daemon procrun (1.0.9.0 64-bit) started
[2012-03-20 16:32:41] [info] ( prunsrv.c:1561) Running 'gr01in01tc70' Service...
[2012-03-20 16:32:41] [debug] ( prunsrv.c:1345) Inside ServiceMain...
[2012-03-20 16:32:41] [info] ( prunsrv.c:1089) Starting service...
[2012-03-20 16:32:41] [debug] ( javajni.c:195 ) Invalid RuntimeLib 'D:\Java\jdk6\jre\bin\server\jvm.dll'
[2012-03-20 16:32:41] [debug] ( javajni.c:197 ) Using Jre JavaHome 'C:\Program Files\Java\jre7'
[2012-03-20 16:32:41] [debug] ( javajni.c:206 ) loading jvm 'C:\Program Files\Java\jre7\bin\server\jvm.dll'
After correcting the JVM path:
[2012-03-20 16:46:13] [debug] ( prunsrv.c:1644) Commons Daemon procrun log initialized
[2012-03-20 16:46:13] [info] ( prunsrv.c:1648) Commons Daemon procrun (1.0.9.0 64-bit) started
[2012-03-20 16:46:13] [info] ( prunsrv.c:1561) Running 'gr01in01tc70' Service...
[2012-03-20 16:46:13] [debug] ( prunsrv.c:1345) Inside ServiceMain...
[2012-03-20 16:46:13] [info] ( prunsrv.c:1089) Starting service...
[2012-03-20 16:46:13] [debug] ( javajni.c:206 ) loading jvm 'C:\Program Files\Java\jre6\bin\server\jvm.dll'
IMO, this message should be a warning or even an error (preferable) so that server admins know right off the bat that they've done something wrong. Otherwise bad things might happen.
Whether or not it should quit instead of defaulting to the system default JRE is a different discussion, but I think the message should at least be changed to a warning or an error.