Eu tenho o seguinte problema ao configurar tomcat 7 para executar como um serviço no Windows.
Mais especificamente, o tomcat faz parte de uma aplicação web que é instalada nos servidores de nossos clientes, e deve ter todas as suas dependências internas.
Neste caso, o tomcat depende do Java JDK / JRE, então eu baixei um jdk autônomo (versão 1.7u21) com seu jre e o coloquei dentro da pasta tomcat.
Agora, minha árvore de diretórios é assim:
tomcat7
- bin
- conf
- jdk
- jre
- logs
- temp
- webapps
- work
Eu então continuei instalando-o como um serviço usando o comando
tomcat\bin\service.bat install
E ele é instalado sem nenhum problema, no modo jvm
.
Por favor note que eu modifiquei o arquivo service.bat para que todas as variáveis necessárias estejam corretamente definidas, isto é, CATALINA_HOME, CATALINA_BASE, JAVA_HOME e JRE_HOME, e os dois últimos apontem para o jdk / jre interno.
No entanto, se eu tentar iniciar o serviço, recebo um erro que diz que não é possível iniciar o serviço e se refere ao código de erro 1.
Olhando nos registros do tomcat, ele diz:
[2013-05-22 12:22:09] [info] [ 5392] Commons Daemon procrun (1.0.15.0 32-bit) started
[2013-05-22 12:22:10] [info] [ 5392] Running 'AGEws2Tomcat7' Service...
[2013-05-22 12:22:10] [info] [ 2764] Starting service...
[2013-05-22 12:22:10] [error] [ 2764] %1 is not a valid Win32 application.
[2013-05-22 12:22:10] [error] [ 2764] Failed creating java C:\AGEws\tomcat7\jdk\jre\bin\server\jvm.dll
[2013-05-22 12:22:10] [error] [ 2764] %1 is not a valid Win32 application.
[2013-05-22 12:22:10] [error] [ 2764] ServiceStart returned 1
[2013-05-22 12:22:11] [error] [ 2764] %1 is not a valid Win32 application.
[2013-05-22 12:22:11] [info] [ 5392] Run service finished.
[2013-05-22 12:22:11] [info] [ 5392] Commons Daemon procrun finished
Eu tentei pesquisar um pouco sobre a parte Failed creating java
e descobri algumas informações sobre uma possível dependência em um arquivo .dll
, que eu encontrei, mas eu não entendo onde devo colocá-lo, se isso é realmente o problema.
Eu também tentei instalar o serviço no modo java
, e ele funciona mas usa a JVM do meu computador em vez do interno, enquanto eu preciso usar o interno.
O que posso / devo fazer para que o tomcat funcione corretamente como um serviço no modo jvm
, usando seu próprio jdk / jre?
Por favor, note que a nossa aplicação web costumava enviar com o tomcat 5, que funcionou perfeitamente no modo jvm
.