VRaptor3 - Não executa método [Resolvido]

Olá pessoal. Fiz o exemplo básico do VRaptor e o início deu certo. Contudo, na hora de hora de logar, ele não está chamando o método login.

Meu Controller:

[code]@Resource
public class IndexController {
private Result result;
private LoggedUser loggedUser;

public IndexController(Result result, LoggedUser loggedUser) {
	this.result = result;
	this.loggedUser = loggedUser;
}

@Path("/")
public void index() {

}

@Post
public void login(Person person) {
	loggedUser.setLogin(person.getLogin());
	loggedUser.setPassword(person.getPassword());
	result.redirectTo(HomeController.class).home();
}

}[/code]

minha jsp:

[code]

Digital do Vale Login: Senha: [/code]

Cheguei a debugar e vi que ele entra no método index, mas não no login. Ele dá o erro 404, falando que não achou o resource para /index/login

Obrigado desde já e bom fim de carnaval a todos :slight_smile:

Acho que o padrão do vraptor é usar sem a barra no final. Então deveria ser algo como /index/login.

Abraços

[quote=garcia-jj]Acho que o padrão do vraptor é usar sem a barra no final. Então deveria ser algo como /index/login.

Abraços[/quote]

Esqueci de comentar garcia-jj: já tentei com e sem barra no final, já tentei anotar o método com um path diferente tb, e nada. De qq forma, obrigado pela tentativa.

Só que tem um porém… qual o seu contexto? Você está usando /xxx ou /meu-context/xxx?

estou usando /meu-context/xxx. Cheguei a colocar o meu-context também no jsp e no path, mas não funcionou. Só o que não testei foi deixá-lo vazio. Pra isso, é só setar o WebContext no eclipse para vazio? De qq forma, já vou colocar pra vazio e testar. Se der certo, já venho avisar. Acho que sou o único programador Java que só manjo de Desktop e não de Web…rs.

Vlw pela força.

Muito Obrigado garcia-jj. Coloquei para vazio e aí funfou aki. Talvez fosse bom colocar um aviso na documentação do VRaptor para os newbies como eu…hehe.
Vou colocar o post como resolvido.

Renzo, o projeto web tem uma particularidade. Qauando você cria um projeto web você precisa dizer onde está seus arquivos que ficam acessíveis da web (web content) que pode ser qualquer coisa, e também o seu contexto web.

O primeiro indica onde ficam os arquivos que ficarão visíveis na web, no caso imagens, javascript e afins. Tudo que estiver um nível acima não será visível na web. Os diretórios META-INF e WEB-INF, mesmo que estejam abaixo do web content não são visíveis, e se você tentar acessar retorna erro 404.

O segundo é o seu contexto. Ele não tem relação alguma com o primeiro. Ele apenas indica qual o diretório abaixo do seu domínio ele ficará. Se seu contexto for vazio vocẽ irá acessá-lo via www.vraptor.org/. Caso você indicar o contexto teste você irá acessar sua aplicação via www.vraptor.org/teste.

Acho que é isso, hehe.

Abraços