Vraptor3: @Path("/{companyAlias}/") e @Path("/register/")

4 respostas
rogerio.alcantara

Boa noite Jedis do GUJ.

O projeto que estou atuando possui um cenário onde eu preciso fazer o path da aplicação responder o alias da company (como o facebook faz, por exemplo: http://meusite.com/aliasDaCompany/)

para isso, fiz:
@Resource
public class CompanyController {

	@Path("/{companyAlias}/")
	public void index(final String companyAlias) {

             //
	}
}
Entretando, na mesma aplicação, eu gostaria que a página de registro ficasse em, http://meusite/register/ Para isso, fiz:
@Resource
public class RegisterController {

	@Get
	@Path("/register/")
	public void index() {};
}
Porem estou recebendo o erro:
java.lang.IllegalStateException: There are two rules that matches the uri '/register/' with method GET: [[FixedMethodStrategy: /{companyAlias}/
Há alguma maneira de contornar a situação? Qual é o melhor approach para esse cenário?

Agradeço mais uma vez.

Namastê

4 Respostas

G

Use o atribuito Path.priority. Você pode encontrar mais sobre ele na documentação do VRaptor, item “Resources REST”.

Lucas_Cavalcanti

sobre o que o garcia falou:

@Path(value="/{companyName}", priority=Path.LOWEST)

deve resolver (se vc está com a última versão do vraptor)

mondor

@Get @Path("/perfil/{usuario.login}", priority=Path.LOWEST)
Syntax error on token, invalid MemberValuePairs

vRaptor 3.3.1, porque será?

Lucas_Cavalcanti

não é erro do vraptor, e sim do java… isso não é valido, vc precisa colocar o value= no começo:

@Get @Path(value = "/perfil/{usuario.login}", priority=Path.LOWEST)

o value é opcional qdo vc só tem ele, qdo tem mais de um atributo, ele é obrigatório

Criado 1 de junho de 2011
Ultima resposta 5 de jun. de 2011
Respostas 4
Participantes 4