1
resposta

Problema na aula 1

Ao seguir passo a passo o uso do vraptor, ao tentar acessar o link da pagina (tanto o "/" como a lista de produto), apresenta o erro abaix:

br.com.caelum.vraptor.http.route.MethodNotAllowedException: Method GET is not allowed for requested URI. Allowed Methods are [PATCH]

Ja coloquei @Get sobre o método e a situação continua.

Classe java

package br.com.caelum.vraptor.controller;

import java.util.List;

import javax.persistence.EntityManager;

import br.com.caelum.vraptor.Controller;
import br.com.caelum.vraptor.Patch;
import br.com.caelum.vraptor.dao.ProdutoDao;
import br.com.caelum.vraptor.model.Produto;
import br.com.caelum.vraptor.util.JPAUtil;

@Controller
public class ProdutoController {

    @Patch("/")
    public void inicio(){

    }

    @Patch("/produto/lista")
    public List<Produto> lista(){
        EntityManager em = JPAUtil.criaEntityManager();
        ProdutoDao dao = new ProdutoDao(em);
        return dao.lista();
    }

}

Pagina inicio que encontra-se em webapp/web-inf/jsp/produto

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Projeto de Produtos</title>
    </head>
    <body>
        <h1>Primeira lógica com VRaptor 4!</h1>
    </body>
</html>

Pagina lista que encontra-se em webapp/web-inf/jsp/produto

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<html>
    <link rel="stylesheet" type="text/css" href="../bootstrap/css/bootstrap.css"/>
    <body>
        <div class="container">
            <table class="table table-stripped table-hover table-bordered">
                <thead>
                    <tr>
                        <th>Nome</th>
                        <th>Valor</th>
                        <th>Quantidade</th>
                    </tr>
                  </thead>
                  <tbody>
                  <c:forEach items="${produtoList}" var="produto">
                    <tr>
                        <td>${produto.nome}</td>
                        <td>${produto.valor}</td>
                        <td>${produto.quantidade}</td>
                    </tr>
                </c:forEach>
                </tbody>
            </table>
        </div>
    </body>
</html>
1 resposta

É que vc botou colocou @Patch. Coloca @Get.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software