03 Aplicação Web com VRaptor 4 – Olá VRaptor

Alô Jacaré de parede, está afim de aprender VRaptor? Então se Liga, essa é a terceira parte, e vou te ensinar a fazer o famosíssimo Olá Mundo, Hello World, Hola Mundo, Ciao Mondo, Hallo Welt, valeu google translate. Bom chega de bobeira, vamos ao que interessa.

Ah antes que esqueça, pode ver todo o código no github: https://github.com/pedro-hos/aprendendo-vraptor

Bom senhores, parto do pressuposto que você jovem, já preparou seu ambiente, eu te ensinei aqui no blog, lembra? Não fez? Então corre lá na Parte 2, Aplicação Web com VRaptor 4 – Configurando Ambiente.

Agora que configurou tudo certinho, você tem duas opções, pode usar o vraptor-blank-project, que é disponilibizado no github do VRaptor ou pode seguir os passo abaixo, que eu recomendo fortemente.

Com o eclipse aberto vamos criar um projeto Maven, para isso aperta ai as teclas CTRL + N, e digita Maven na parada de pesquisa aí.

Escolhe Maven Project, que está dentro Maven, tipo a imagem de baixo:

Captura de Tela 2014-12-30 às 23.17.59

Firmeza, agora vai e clica em Next, vai ter uma tela tipo a de baixo, lá você vai tickar, a opção: Create a simple project (skip archetype selection)

Captura de Tela 2014-12-30 às 23.20.52

Vai ter uma telinha como essa ai de baixo:

Captura de Tela 2014-12-30 às 23.24.41

  • no Group Id, você digita pedroHos;
  • no Artifact Id, põe ola-vraptor,  Version não precisa mudar;
  • no Packaging, você muda para war.

No final você terá uma estrutura como essa:

Captura de Tela 2014-12-31 às 00.09.39

Quando geramos um projeto pelo Maven, temos essa estrutura, todo nosso código de classes, properties, e configurações, fica dentro de Java Resources, dentro dela temos:

  • src/main/java, aqui ficam nossas classes java ok?
  • src/main/resources, aqui ficam os arquivos de configuração beleza tatu?
  • src/test/java, aqui nos vamos colocar os testes unitário, de integração etc, isso é muiiiito importante;
  • src/test/resources, finalmente aqui, colocamos os arquivos de configuração pertinentes aos testes.
  • src/main/webapp, ela está fora do Java Resources, ali é a raiz do “WAR”. Tudo que for colocado nessa pasta ficará na raiz do artefato gerado, com isso, a pasta WEB-INF e arquivos de configuração ficarão localizados nesse diretório, Páginas JSP etc 😀

Simples né? Vamos começar a parte mais gostosa *—*, codar. Let’s Go.

A Primeira coisa que temos que fazer é colocar as dependências, configurar os plugins etc no Maven, para isso você deve editar o arquivo pom.xml, ele se encontra na raiz do projeto, ou você pode dar: CTRL + SHIFT + R e pesquisar por pom.xml, o arquivo vai estar na caixinha, só abrir ele 😉

Se liga tatu, a primeira coisa que você vai fazer dentro do pom.xml é adicionar o trecho de código abaixo, ele vai add o plugin do compilador do Java 8 no projeto, ele fica entre as tags <project> … </project>

<build>
       <finalName>ola-vraptor</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

O <finalName></finalName> é o nome que será gerado o war, então nosso war terá o nome de ola-vraptor.

Ainda dentro das tags <project> … </project> vamos adicionar as seguintes dependências, isso seria o mesmo que pegar o jar e adicionar na lib dos projeto. Todas as dependências ficam dentro das tags <dependencies></dependencies> beleza? Então abre o pom.xml e adicione o seguinte trecho de código:

<dependencies>

    <dependency>
        <groupId>br.com.caelum</groupId>
        <artifactId>vraptor</artifactId>
        <version>4.1.4</version>
    </dependency>

    <dependency>
        <groupId>jstl</groupId>
         <artifactId>jstl</artifactId>
         <version>1.2</version>
    </dependency>

    <dependency>
        <groupId>javax.inject</groupId>
        <artifactId>javax.inject</artifactId>
        <version>1</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>7.0</version>
        <scope>provided</scope>
    </dependency>

    </dependencies>

 

Ali estamos adicionando no projeto:

  • vraptor: A versão mais atual, no momento que escrevo este post, esta versão já dá suporte ao CDI 1.2, e logo ao WildFly 8.2.0 Final
  • jstl: Para poder trabalhar com as JSP que serão nossa view
  • javax.inject: Para usar as anotações @Inject, @Scope, @Singleton etc.
  • javaee-web-api: Para usar as especificações do Java EE 7

Estamos quase no fim das configurações, vamos agora criar o folder WEB-INF que fica dentro de src/main/webapp. Ficará asim

Captura de Tela 2015-01-01 às 11.16.46Feito isso vamos criar dois arquivos xml dentro de WEB-INF, o web.xml que é um velho conhecido e o beans.xml que serve para ativar o CDI na aplicação. Você ficará com uma estrutura parecida com a seguinte:

Captura de Tela 2015-01-01 às 11.37.49

O conteúdo do web.xml será o seguinte:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">

<session-config>
<session-timeout>30</session-timeout>
</session-config>

</web-app>

Já o conteúdo do <strong>beans.xml</strong> será o seguinte:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
bean-discovery-mode="all">
</beans>

Pronto, terminamos agora a parte da configuração, vamos codificar JAVA agora, rs. Vamos criar nosso primeiro Controller usando VRaptor 4, vamos criar a classe dentro de src/main/java. Faça igual está na imagem abaixo, no Package vamos colocar br.com.pedroHos.controller, e o Name será OlaController. Só apertar Finish depois.

Captura de Tela 2015-01-01 às 11.43.51

O conteúdo dessa classe será:

import br.com.caelum.vraptor.Controller;

@Controller
public class OlaController {

public void digaOla() {
System.out.println("# Olá Vraptor Controller!");
}

}

 

O @Controller faz com o VRaptor identifique esta classe como sendo o controller, todos os controllers devem ser anotados com ela.

Vamos agora criar nossa JSP, ela deve ficar, por padrão do VRaptor, dentro do diretorio: src/main/webapp/WEB-INF/jsp, dentro deste diretório vamos criar outro folder, com o nome da classe, mas sem a palavra Controller, essa é outra convenção do VRaptor. Logo, vamos criar uma pasta com o nome ola. Dentro desta pasta vamos criar uma jsp com o nome digaOla.jsp. Teremos então uma estrutura como a seguinte:

Captura de Tela 2015-01-01 às 14.24.08Legal, o conteúdo deste arquivo, digaOla.jsp será o seguinte:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Olá VRaptor</title>
</head>
<body>
    <h1>Olá VRaptor</h1>
</body>
</html>

Pronto agora, podemos subir o servidor WildFly, mas antes é preciso adicionar o projeto no WildFly, para isso, cliquei com o botão direito no servidor, na aba servers, e depois vá em add and remove, uma tela parecida com essa será apresentada.

Captura de Tela 2015-01-01 às 14.28.07

Pronto, agora só dar o Add All depois em Finish e subir o Servidor, feito isso acesse a página em seu browser preferido: http://localhost:8080/ola-vraptor/ola/digaOla

Você verá no console, que a mensagem semelhante a esta

11:59:11,808 INFO  [stdout] (default task-2) # Olá Vraptor Controller!

Pronto, fizemos o Olá Mundo, até a próxima pessoal!

Para lembrar, este e outros códigos podem ser acompanhados no meu github: https://github.com/pedro-hos/aprendendo-vraptor

Anúncios

14 comentários

  1. Pingback: Aplicação Web com VRaptor 4 – Configurando persistence.xml | Pedro Hos
  2. Pingback: Aplicação Web com VRaptor 4 – Introdução | Pedro Hos
  3. Raphael · fevereiro 26, 2015

    It’s alive!! Muito bom, Pedro. Estava com problemas pra configurar o ambiente e graças ao seu tutorial, foi “melzinho na chupeta” rss.

    • Pedro Henrique de Oliveira Silva · fevereiro 26, 2015

      Opa Raphael, que bom que os artigos te ajudaram. Se puder divulgar para os amigos ficaria grato. Vamos passar conhecimento. Abraços

  4. Pingback: 04 Aplicação Web com VRaptor 4 – Iniciando Projeto | Pedro Hos
  5. Eduardo · maio 11, 2015

    Excelente artigo!! fiz o teu projeto inicial seguinto exatamente todos os passos e funciona perfeitamente!!

    Fui fazer outro e nada :/

    Ele mostra a mensagem no console certinho, mas ao invés de mostrar o texto que está no jps ele mostra o caminho

    /cadastroProduto/WEB-INF/jsp/ola/digaOla.jsp

    Já refiz algumas vezes e sempre o mesmo erro, não achei ainda o ponto que está passando batido

    • Eduardo · maio 11, 2015

      Resolvido!!

      O meu problema foi que eu não havia entendido bem as “manhas” do vraptor

      No meu controler eu fiz para testar o método olaMundo e o meu jps estava como produto.jps, depois de queimar muito a cuca que caiu a ficha que os métodos do controller vão chamar o jps de mesmo nome

      Mais uma vez parabéns pelo artigo!!

      • Pedro Henrique de Oliveira Silva · maio 11, 2015

        Opa, valeu Eduardo. Obrigado pelo Feedback. Qualquer dúvida, manda aí. Abraços

  6. Josue · maio 25, 2015

    Valeu Pedro!!!
    Parabéns pelo artigo!!
    Estava com problemas aqui e vc me ajudou!

    • Pedro Henrique de Oliveira Silva · maio 29, 2015

      Obrigado pelo feedback Josue. Bons estudos

  7. fabiohbarbosa · outubro 23, 2015

    Excelente Pedro!!!

    • Pedro Henrique de Oliveira Silva · outubro 23, 2015

      Valeu mano. 🙂

  8. rafaeldória · novembro 11, 2015

    Excelente!!!
    Bem explicado, fácil!!!
    Boa!

    • Pedro Henrique de Oliveira Silva · novembro 11, 2015

      Obrigado Rafael. Abraços

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s