E ai pessoal tudo bem?
Tenho vários controllers com e sem @Path ex
[code]CadastroController{
public voir list(){}
}
}[/code]
O acesso seria cadastro/list
[code]Cadastro2Controller{
public void list(){}
}[/code]
e cadastro2/list
e tenho um controller com @Path dinâmico
Cadastro3Controller {
@Path(priority=Path.LOWEST, value="/{valor}/{valor2}")
public void alterar(String valor, String valor2){}
}
dai vem o erro
java.lang.IllegalStateException: There are two rules that matches the uri
e se eu colocar
@Path(priority=Path.LOW, value="/{valor}/{valor2}")
o método sempre é acessado primeiro…
o que será isso?
Abraços…
quais são essas duas rules que ele está acusando?
hum… dá uma olhada:
se vc não usa o @Path, ele é LOWEST por padrão =(
então se vc coloca o outro path como LOWEST eles ficam na mesma prioridade
E se eu colocar como DEFAULT deve funcionar?..
DEFAULT é maior que LOWEST… então o @Path como default não vai resolver…
teria que mudar o padrão das urls sem @Path (ou similar) =(
Não, estou dizendo implementar esta RouteBuilder ou baixar o fonte do vraptor e mudar…
é, dá pra fazer isso sim, vc sobrescrever o routebuilder padrão do VRaptor…
o que a gente pode fazer é deixar a priority inicial configurável facilmente (estendendo o DefaultRouteBuilder e implementando um método), que acha?
quer implementar e mandar um pull request? =)
Valeu lucas, vou testar depois eu posto os resultados…
Lucas funcionou…, baixei o fonte e coloquei private int priority = Path.DEFAULT;
Não sei como fazer este pull request que vc falou…
então, cria um fork lá no github, faz um push pra ele, e manda um pull request (fork e pull request é pela interface do github)…
de qqer forma mudar pra default quebra compatibilidade, o ideal é deixar isso estensível