We have had exactly the same problem, for some reason tomcat won't start right when run as service. We found a workaround by using a custom made service created with srvstart:
http://www.nick.rozanski.com/services.htm It doesn't always work (especialy stopping the service sometimes fails). But it is much better then having to log in to get tomcat started. Our srvstart control file looks something like this:
------------------------------
startup=C:\j2sdk1.4.0\bin\java -server -Xms32m -Xmx256m -Dlog4j.configuration=file:///C:/ApacheTomcat/conf/log4j.properties -Djava.endorsed.dirs="C:\ApacheTomcat\bin;C:\ApacheTomcat\common\lib" -classpath "C:\j2sdk1.4.0\lib\tools.jar;C:\ApacheTomcat\bin\bootstrap.jar" -Dcatalina.base="C:\ApacheTomcat" -Dcatalina.home="C:\ApacheTomcat" -Djava.io.tmpdir="C:\TEMP" org.apache.catalina.startup.Bootstrap start
startup_dir=C:\ApacheTomcat\bin\
shutdown_method=command
shutdown=C:\j2sdk1.4.0\bin\java.exe -jar "C:\ApacheTomcat\bin\bootstrap.jar" stop
------------------------------
As you can see we just copied the final command that is executed by the tomcat startup.bat file. Plus some of our own extra's (-server -Xms32m -Xmx256m -D etc.)
Hope this helps
[ December 10, 2002: Message edited by: Nico Krijnen ]