Depois de apanhar muito, fuçar muito, consegui colocar o Jetty-hightide-7.4.5 como serviço do Windows com o Java Service Wrapper!!!
Vou compartilhar a minha conquista com vocês e com que um dia precisar como eu precisei e não achei nenhum tutorial ou documentação que explicasse como fazer funcionar.
Bom, vamos por a mão na massa!
Primeiramente, baixar os arquivos:
1- Jetty-hightide versão 7.4.5 (Não testei com as outras versões, somente com essa, por isso, recomendo essa que usem essa versão) Clique aqui para baixar o Jetty
2- Wrapper-Windows-x86-32-3.5.13 (Essa foi a versão que usei para colocar meu Jetty como serviço do Windows) Clique aqui para baixar o Wrapper Windows
Após descompactá-los em seu diretório preferido, copie os seguintes arquivos da pasta src/bin do Wrapper-Windows para a pasta bin do Jetty:
1-App.bat.in;
2-InstallApp-NT.bat.in;
3-UnisntallApp-NT.bat.in;
Renomeie os arquivos, retirando o .in para que fique somente com a extensão .bat. Por exemplo: App.bat.in para App.bat
Copie a pasta conf do Wrapper-Windows que está dentro do src para a raiz do Jetty (lembrando que a pasta e todo o seu conteúdo ok?).
Renomeie o arquivo wrapper.conf.in para wrapper.conf;
Copie da pasta bin doWrapper-Windows para a pasta bin do Jetty:
1-wrapper.exe;
Até aqui, você encontra em qualquer tutorial, sendo que não funciona, ou dá problema em inicialização do serviço, dando erro 1067 entre outros... :cry:
Agora vamos as configurações do wrapper.conf (É aqui que está todo o segredo pra fazer funcionar o Jetty)
Em Java Main class, mude o :
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
para :
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperJarApp
Em Java Classpath, adicione os classpath :
wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.classpath.2=../lib/*.jar
wrapper.java.classpath.3=../lib/jsp/*.jar
wrapper.java.classpath.4=../start.jar
Em Application parameters, adicione os seguintes parâmetros :
wrapper.app.parameter.1=../start.jar
wrapper.app.parameter.2=../etc/jetty.xml
wrapper.app.parameter.3=../etc/jetty-deploy.xml
wrapper.app.parameter.4=../etc/jetty-webapps.xml
wrapper.app.parameter.5=../etc/jetty-contexts.xml
wrapper.app.parameter.6=../etc/jetty-testrealm.xml
wrapper.app.parameter.7=../etc/jetty-jmx.xml
Em Title to use when running as a console, coloque o nome que desejar :
wrapper.console.title=Jetty-hightide 7.4.5 <-- Aqui eu coloquei esse nome, mas você pode colocar o nome que quiser
Isso serve para o Name of the service, Display name of the service e Description of the service :
wrapper.name=Jetty-hightide 7.4.5 <-- Aqui eu coloquei esse nome, mas você pode colocar o nome que quiser
wrapper.displayname=Jetty 7 Service <-- Aqui eu coloquei esse nome, mas você pode colocar o nome que quiser
wrapper.description=Jetty-hightide 7.4.5 for Daniel Hideki Shibata Cassi <-- Aqui eu coloquei esse nome, mas você pode colocar o nome que quiser
Agora, é só clicar em App.bat que está na pasta bin, lembrando que se for vista ou Windows 7 , clicar com o botão direito e executar como administrador.
Se tudo estiver certo, é só digitar "localhost:8080"no seu browser preferido (a porta 8080 é a porta default do Jetty, caso queira mudá-la, é só alterá-la no jetty.xml, que está dentro da pasta etc) que a página inicial do Jetty irá aparecer.
Agora, vamos fazer o serviço do windows:
Clique em InstallApp-NT.bat que está na pasta bin, lembrando que se for vista ou Windows 7 , clicar com o botão direito e executar como administrador.
Para inicializá-lo, vá até Serviço e localize o serviço que você acabou de criar e clicar em iniciar. Pronto, seu Jetty está como serviço do Windows!
Está aí, passo a passo pra vocês!
Deixo aí pra quem quiser usar esse servidor excelente!
Espero que este tópico ajude e em breve, postarei mais tutoriais, obrigado e até mais!!!!
Daniel Hideki...
Olá, boa tarde!
ResponderExcluirFazendo esses passos eu cheguei no erro que o App.bat não consegue criar a JVM.
Alguma sugestão ?
Abraço
Olá Cleiton Mendes,
Excluirdeixa eu te perguntar uma coisa, vc configurou o path e o java_home?
Provavelmente o wrapper não está encontrando a jvm, por isso não consegue criá-la. Caso não tenha configurado, o processo é muito simples, se for no windows 7, clique o botão iniciar, clique com o botão direito no ícone do computador, clique em propriedades, clique em configurações avançadas do sistema e clique em variáveis de ambiente.
Em variáveis de ambiente, você visualizará 2 campos, variáveis do usuário e variáveis do sistema(é nesse que vc vai configurar).Em variáveis do sistema vc vai clicar em novo.
No campo nome da variável, vc coloca o nome de JAVA_HOME, e no campo valor da variável vc vai colocar o caminho da jdk, por exemplo: C:\Program Files (x86)\Java\jdk1.6.0_30, que é o caminho da minha máquina.Clique em ok.
Após isso, procure a variável path e clique em editar. No final do campo do valor da variável, se nãoe stiver com ponto e vírgula, coloque e em seguida coloque assim: %JAVA_HOME%\bin.Clique em ok.
Pronto, o path está configurado. Acredito que assim, o wrapper conseguirá criar a jvm pra vc.
Espero ter ajudado! Qualquer dúvida, posta a dúvida aí e o resultado caso tenha resolvido beleza?
Um grande abraço.
Daniel Hideki
Daniel,
ResponderExcluirEstou tendo os mesmos problemas do Cleiton. Tenho o path configurado corretamente. Alguma outra sugestão ?
O que está acontecendo é que na hora que rodo o app.bat ele não deixa, pedi uma licença para usar o arquivo.
ResponderExcluirOlá Rafael Lima tudo bem?
ExcluirCara, vc poderia colocar o erro que dá ao tentar executar o app.bat? Sobre a licença que está pedindo, qual versão que vc baixou do java service wrapper? A versão gratuita é a versão community se não estou enganado.
Se mesmo vc usando a versão community der erro, posta aí para que eu possa te ajudar a resolver ok? No começo tive muitos problemas pra colocar o Jetty em serviço de Windows e quem sabe é um deles que vc está passando não é mesmo?
Um abraço;
Daniel Hideki
Este comentário foi removido pelo autor.
ExcluirTudo bem daniel,
ExcluirEntão cara resolvi o problema da licença mas o problema do de não iniciar a JVM permanece, olhe o erro que está dando.
wrapper | Launching a JVM...
jvm 1 | java.lang.NoClassDefFoundError: org/tanukisoftware/wrapper/WrapperJar
App
jvm 1 | Caused by: java.lang.ClassNotFoundException: org.tanukisoftware.wrapp
er.WrapperJarApp
jvm 1 | at java.net.URLClassLoader$1.run(Unknown Source)
jvm 1 | at java.security.AccessController.doPrivileged(Native Method)
jvm 1 | at java.net.URLClassLoader.findClass(Unknown Source)
jvm 1 | at java.lang.ClassLoader.loadClass(Unknown Source)
jvm 1 | at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
jvm 1 | at java.lang.ClassLoader.loadClass(Unknown Source)
jvm 1 | Could not find the main class: org.tanukisoftware.wrapper.WrapperJarA
pp. Program will exit.
wrapper | JVM exited while loading the application.
Lembrando que meu jetty é o 8, não sei se pode haver alguma incompatibilidade.
Muito Obrigado.
Muito obrigado.
Olá Rafael Lima tudo bem?
ExcluirCara, o fato de ser o Jetty 8 não influencia não pois eu já coloquei o 8 pra rodar como serviço de windows. Esse erro que está dando é por que o wrapper não está encontrando a classe do jar wrraper.jar. Verifque o seguinte no arquivo wrapper.conf:
- o wrapper.jar está dentro da pasta lib do Jetty?
- o caminho em que aponta pro jar está correto?
Aguardo respostas ok?
Um abraço;
Daniel Hideki.
Daniel, Boa noite !
ResponderExcluirRealizei a copia do wrapper.jar para a pasta lib do jetty e deu certo. Acontece que agora quando subo o servidor com a aplicação está dando o erro de PWC6345: There is an error in invoking javac. A full JDK (not just JRE) is required. Já conheço esse erro, para solucioná-lo tive que adicionar no start.ini o comando: -Dorg.apache.jasper.compiler.disablejsr199=true,mas verificando o arquivo start.ini vejo que ele ja está configurado corretamente. A aplicação sobe normalmente quando eu inicio sem clicar no app.bat, clicando apenas no start.jar.
Se souber de algo fico grato, estou pesquisando aqui.
Muito Obrigado.
Abs
Daniel,
ResponderExcluirEstava olhando aqui, devo fazer algo com esses arquivos:
wrapper-windows-x86-32.dll
wrapper.dll
att
Olá Rafael Lima, tudo bem?
ExcluirBom, vamos por partes...
Sobre o erro acima, dá uma olhada neste post que publiquei hoje, que acho que vai te ajudar. http://danielhideki.blogspot.com.br/2012/10/configuracao-jetty-required-full-java.html
Sobre o wrapper.dll, coloque essa dll dentro da pasta lib do Jetty.
Acho que com isso vc vai conseguir rodar o Jetty de boa...
Qualquer coisa, é só gritar ok?
Um grande abraço;
Daniel Hideki.
Daniel, tudo bem.
ExcluirFuncionou tudo aqui agora, Muito Obrigado. Continue assim, esse blog é o único em português que trata o problema do jetty como serviço. Continue assim, Parabéns.
Abs.
E aí Rafael Lima, tudo bem?
ExcluirFico contente em ter te ajudado, e que tenha conseguido colocar o Jetty como serviço do Windows.
Sempre que der, postarei as minhas experiências com o Jetty, entre outros assuntos relacionados a programação.
Um grande abraço;
Daniel Hideki.