Executar um arquivo WAR

Ola pessoal…

tenho um arquivo WAR…
como faco p/ roda-lo no tomcat??

valew

Joga ele dentro de webapps. Reinicia o tamcat que ele automaticamente descompacta e td fica funcionando. (Tem como instalar sem ter que reiniciar o Tamcat, mas não sei como funciona).

eu tentei fazer isso…

mas ele nao descompactou nada na pasta…

tenho q jogar no webapps ou em uma pasta dentro dela??

Você tem que jogar no webapps mesmo…

porém, se no seu arquivo server.xml, na linha que segue abaixo:

      <!-- Define the default virtual host -->
      <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true">

estiver com o parâmetro [color=“red”]unpackWARs=“false”[/color] ou não estiver com o parâmetro, os arquivos WARs que você jogar lá não serão descompactados.

Verifique esse parâmetro…

[]s

Primeira vez que to tentando rodar um war…
Ele descompactou blz…
Mas como eu chamo ele??
To tentando: http://localhost:8080/helloservlet
Aí abre como se fosse o diretório, mostrando a classe “HelloServlet.class” lá dentro… mas num executa nada…

Coloquei isso daqui no server.xml:

	<!-- HelloServletApp Context -->
	<Context path="/helloservlet" docBase="D:TomCatwebappshelloservlet" debug="0" reloadable="true" unpackWARs="true"/>

Só pra ter certeza… pra criar um WAR é a mesma coisa que um JAR né?? Só muda a extensão?? Precisa de alguma coisa especial no manifest.mf ?? alguma coisa parecida??

Valeus!!

Você chama com o mesmo nome do WAR. Por exemplo, se você jogar um WAR onde o nome do arquivo é teste.war. Você chamará essa aplicação com o seguinte endereço:
http://localhost:porta/teste

No parâmetro docBase você colocou:

D:\TomCat\webapps\helloservlet

Não precisa colocar o caminho completo. Ele já assume que está debaixo de webapps. Poderia ficar assim:

<!-- HelloServletApp Context -->
   <Context path="/helloservlet" docBase="helloservlet" debug="0" reloadable="true" unpackWARs="true"/> 

Tentei, mas ele abre a lista do diretório… :stuck_out_tongue:
Com o HelloServlet.class lá…

Não deveria ter algum lugar que eu falo QUAL .class ele deveria abrir??

Todos os .class devem estar dentro do diretorio WEB-INF/classes, a partir da raiz da tua aplicacao.

O lance de “Não deveria ter algum lugar que eu falo QUAL .class ele deveria abrir??” voce faz no web.xml ( que fica dentro do WEB-INF ) utilizando a tag <servlet-mapping>.

Por exepmlo, o web.xml abaixo diz que eh para usar a classe “ServletFrontController” caso a url /admin seja acessada:

&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;!DOCTYPE web-app PUBLIC &quot;-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN&quot;
&quot;http&#58;//java.sun.com/dtd/web-app_2_3.dtd&quot;&gt;

&lt;web-app&gt;
	&lt;servlet&gt;
		&lt;servlet-name&gt;ServletFrontController&lt;/servlet-name&gt;
		&lt;servlet-class&gt;br.com.wvproducoes.ServletFrontController&lt;/servlet-class&gt;
	&lt;/servlet&gt;

	&lt;servlet-mapping&gt;
		&lt;servlet-name&gt;ServletFrontController&lt;/servlet-name&gt;
		&lt;url-pattern&gt;/admin&lt;/url-pattern&gt;
	&lt;/servlet-mapping&gt;
&lt;/web-app&gt;

Rafael

Então afinal qual a vantagem do WAR??

Leandro,

Você está tentando montar um WAR ou você está tentando utilizar um WAR pronto?

O WAR tem a mesma utiliaded do JAR: agrupar arquivos e diretorios, assim voce pode mudar de um lugar pro outro facilmente. Lembrando que um .war eh exatamente a mesma coisa que um .jar … a sun so definiu uma extensao diferente para distinguir facilmente o que eh para web e o que nao.

Rafael

Eu consegui fazer o deploy que é a geração do arquivo war, ao executar o site ele criou a pasta dentro da webapps só que iniciei o TomCat (Apache Tom Cat) como serviço do windows, e funcionou sem estar com o Eclipse aberto e tomcat iniciado dentro dele.

Ficou da hora!!!