Modificar e adicionar serviços a um aplicativo Java no Heroku
Com o passar do tempo, qualquer aplicativo que você executa no Heroku requer novos recursos e melhorias. À medida que faz essas mudanças, você precisa poder executar seus processos Java localmente para depurar problemas com facilidade, realizar testes e confirmar que seu aplicativo está funcionando. Nesta unidade, você aprenderá a executar o aplicativo Java de exemplo da mesma maneira que ele é executado na plataforma Heroku. Em seguida, fará alterações no aplicativo em seu ambiente local e as implantará no Heroku.
O Heroku reconhece um aplicativo Java pela existência de um arquivo pom.xml
no diretório raiz. Aproveitando seus próprios aplicativos, você pode criar outro usando o comando mvn archetype:create
. O aplicativo de demonstração que você implantou já tem um arquivo pom.xml
( veja-o no GitHub). Veja aqui um trecho dele:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> ... </dependencies>
O arquivo pom.xml
especifica dependências que devem ser instaladas com seu aplicativo. Quando um aplicativo é implantado, o Heroku lê este arquivo e instala as dependências usando o comando mvnw clean install
.
Outro arquivo, system.properties
, determina a versão do Java a ser usada (o Heroku é compatível com diversas versões). O conteúdo deste arquivo, que é opcional, é bastante direto:
java.runtime.version=1.8
Execute o comando ./mvnw clean install
em seu diretório local pata instalar e executar o Maven (se você estiver usando Windows, deverá usar o comando mvnw.cmd
em vez de ./mvnw
).
./mvnw clean install
Ele instala as dependências e prepara seu sistema para executar o aplicativo localmente. Observe que este aplicativo requer Java 8, mas você pode desenvolver seus próprios aplicativos usando uma versão diferente do Java.
Agora inicie seu aplicativo localmente usando o comando heroku local
, que foi instalado como parte da CLI do Heroku.
heroku local
Assim como o Heroku na nuvem, o comando heroku local
examina o Procfile
para definir qual comando executar.
Deixe-o em execução e abra http://localhost:5000 com seu navegador da Web. Você verá seu aplicativo sendo executado localmente.
Para interromper a execução local do aplicativo, volte à sua janela de terminal e pressione Ctrl+C para sair.
Neste passo, você aprenderá a propagar uma alteração local no aplicativo por meio do Heroku. Como exemplo, você modificará o aplicativo para exibir uma nova página HTML.
Modifique o arquivo src/main/java/com/example/Main.java
adicionando o seguinte método à classe Main
.
@RequestMapping("/hello") String hello(Map<String, Object> model) { model.put("message", "Welcome to my app!"); return "hello"; }
Em seguida, crie um arquivo src/main/resources/templates/hello.html
com os esses conteúdos.
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org" th:replace="~{fragments/layout :: layout (~{::body},'hello')}"> <body> <div class="container"> <p th:text="${message}"/> </div> </body> </html>
Agora, teste localmente executando os seguintes comandos (lembre-se de usar mvnw.cmd
se estiver usando Windows).
./mvnw clean install heroku local web
Acesse o aplicativo em seu navegador na rota /hello
em http://localhost:5000/hello. Uma mensagem de boas-vindas será exibida.
Agora, implante essas alterações no Heroku. Quase todas as implantações no Heroku seguem o mesmo padrão.
Primeiro, adicione os arquivos modificados ao seu repositório Git local.
git add .
Em seguida, confirme as alterações no repositório.
git commit -m "Demo"
Envie as alterações por push para o repositório remoto do Heroku do seu aplicativo.
git push heroku master
Por fim, verifique se tudo está funcionando abrindo o aplicativo na rota /hello
.
heroku open hello
Você verá em seu navegador da Web o mesmo texto que viu quando o aplicativo estava sendo executado localmente.
Complementos são serviços em nuvem de terceiros que fornecem serviços adicionais prontos para usar para seu aplicativo, como persistência de registros, monitoramento e muito mais. Seu aplicativo Java vem com um complemento instalado automaticamente: um banco de dados Postgres. Você pode aprender mais sobre como gerenciar seu banco de dados Postgres no Centro de Desenvolvimento Postgres do Heroku.
Aqui, vamos demonstrar como acrescentar um complemento adicional para registros.
Por padrão, o Heroku armazena 1.500 linhas de registros do seu aplicativo. No entanto, ele disponibiliza o fluxo de registros completo como serviço. Além disso, diversos provedores de complementos possuem serviços de registro por escrito que fornecem recursos como persistência de registros, busca e alertas por email e SMS.
Neste passo, você vai provisionar um desses complementos de registro, Papertrail.
Provisione o complemento de registro papertrail.
heroku addons:create papertrail
Para ajudar a evitar usos indevidos, provisionar um complemento requer uma verificação de conta. Se sua conta não tiver sido verificada, você será direcionado para o site de verificação.
Para ver este complemento específico em ação, acesse a URL do Heroku do seu aplicativo algumas vezes. Cada acesso gera mais mensagens de registro, que agora deverão ser encaminhadas para o complemento papertrail. Acesse o console do papertrail para ver as mensagens de registro.
heroku addons:open papertrail
Seu navegador abrirá um console da Web do Papertrail, que exibirá os eventos de registro mais recentes. A interface permite fazer buscas e configurar alertas.
Parabéns! Seu aplicativo Java está pronto para produção.
Clique em Verify Step (Verificar etapa) para concluir o projeto.