Implantação de aplicativo da web Tomcat

Um laboratório que visa desenvolver uma solução “típica” para a implantação de aplicativos da web Spring MVC / Maven para Tomcat 7. Os requisitos são:

  1. Deve haver uma solução para executar o aplicativo localmente.
  2. Deve haver uma solução para configurar, construir e implantar o aplicativo no servidor Tomcat 7.

Como jogar com isso

  1. Executando o aplicativo localmente usando incorporado Jetty: mvn clean jetty:run-exploded. Como não tenho ideia de como fazê-lo funcionar jetty:runsem muito material extra pom.xml, minha solução é: primeiro, construa o warpacote e exploda-o, depois execute o pacote explodido com o Jetty.
  2. Implementando o aplicativo no Tomcat 7 (configurações predefinidas): mvn clean tomcat7:redeploy -Ptomcat-deployment
  3. Implantando aplicação no Tomcat 7 (configurações de TeamCity): mvn clean tomcat7:redeploy -Pteamcity. Isso irá esperar que o ambiente forneça:
  • TOMCAT_SERVER– nome do servidor descrito no Maven settings.xml.
  • TOMCAT_URL– URL do aplicativo de gerenciamento do Tomcat. Normalmente, algo parecido http://localhost:8080/manager/text.
  • TOMCAT_PATH– caminho relativo para implantar o aplicativo. Exemplo: /experiment.
  • ENVNAME– usado apenas para fins ilustrativos. Pode ser o que desejar.
  • ROOTURL– usado apenas para fins ilustrativos. Pode ser o que desejar.

Pré-configuração do ambiente

O Tomcat 7 deve ter um usuário com permissões de implantação. Isso é feito fazendo alterações em [tomcat7]/conf/tomcat-users.xml:

<tomcat-users>
...

<user name="deployer" password="deploy123" roles="manager-script" />
...

</tomcat-users>

A implantação requer que o Maven tenha credenciais para acessar o serviço de gerenciamento do Tomcat. Isso é feito fazendo alterações em settings.xml:

<settings>
...

<servers>
...

<server>
<id>TomcatServer</id> <!-- It's, BTW, what `TOMCAT_SERVER` is -->
<username>deployer</username>
<password>deploy123</password>
</server>
...

</servers>
...

</settings>