Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Preparação de Ambiente Java com VRaptor

No mapeamento do IndexController

package br.com.controle.horas.controllers;

import br.com.caelum.vraptor.Controller;
import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Path;

@Controller
public class IndexController {


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

Deu o seguinte erro

java.lang.IllegalStateException: There are two rules that matches the uri '/' with method GET: [FixedMethodStrategy: /                                                                 index                                                                  ALL], [FixedMethodStrategy: /                                                                 index                                                                  ALL] with same priority. Consider using @Path priority attribute.
    com.google.common.base.Preconditions.checkState(Preconditions.java:177)
    br.com.caelum.vraptor.http.route.DefaultRouter.checkIfThereIsAnotherRoute(DefaultRouter.java:124)
    br.com.caelum.vraptor.http.route.DefaultRouter.parse(DefaultRouter.java:116)
    br.com.caelum.vraptor.http.route.DefaultRouter$Proxy$_$$_WeldClientProxy.parse(Unknown Source)
    br.com.caelum.vraptor.http.DefaultControllerTranslator.translate(DefaultControllerTranslator.java:63)
    br.com.caelum.vraptor.http.DefaultControllerTranslator$Proxy$_$$_WeldClientProxy.translate(Unknown Source)
    br.com.caelum.vraptor.observer.RequestHandlerObserver.handle(RequestHandlerObserver.java:91)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    java.lang.reflect.Method.invoke(Unknown Source)
    org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:93)
    org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:266)
    org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:253)
    org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:232)
    org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:169)
    org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:165)
    org.jboss.weld.event.ObserverNotifier.notifyObservers(ObserverNotifier.java:119)
    org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:112)
    org.jboss.weld.event.EventImpl.fire(EventImpl.java:83)
    br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:118)

Pelo que eu entendi do erro me corriga se eu estiver enganado... O erro ocorre porque ele eu não informei o tipo de requisição, dai o server pediu para eu informar qual tipo de requisição se é Get ou Post como não informei nada ele levantou a exeção "java.lang.IllegalStateException:" Para poder seguir em frente com o curso eu coloquei parametros dentro da Annotation @Path o value e o priority como o codigo abaixo e adicionei mais uma Annotation @Get

package br.com.controle.horas.controllers;

import br.com.caelum.vraptor.Controller;
import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Path;

@Controller
public class IndexController {


    @Path(value="/", priority=1)
    @Get
    public void index(){}
}

Funcionou corretamente mas gostaria de saber porque o @Path("/") desta forma levantou exceção?Alguém teria alguma idéia?

2 respostas
solução!

Oi Edwin, tudo bem ?

Esse erro é fala que você tem duas opções mapeadas para bater nesse endereço, nisso ele não sabe qual deve assumir como correta, quando você deu prioridade a uma, ele conseguiu entender que toda vez que você bater nesse endereço, é aquele mapeamento que será chamado.

Dá uma olhadinha nos seus arquivos e vê você não encontra outro lugar com o mesmo mapeamento.

Abraços

Oi Matheus Tudo bem :) Agora comprendi melhor o problema, acredito que deve ser por causa do IndexController que tinha sido criado anteriormente no projeto antes dos exercícios irei verificar.

Obrigado pela Ajuda.