Mensagem de erro JSF

Olá pessoal, não estou conseguindo fazer a mensagem de erro aparecer.
Código:

catch(PersistenceException e){
			FacesContext ctx = FacesContext.getCurrentInstance();
			ctx.addMessage(null, new FacesMessage("Login não autorizado!"));
			return "erro";

Na página eu coloco a tag: <h:messages />.
Deveria aparecer a mensagem de erro mas não aparece.
Alguém já usou, sabe como ajudar.
Grato!

Estou usando JSF com Spring.

Olá, eu uso dessa maneira e funciona, a diferença do meu para o seu é que você não informa o nome do formulario da pagina

FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO,
					"Produto adicionado com sucesso!",
					"Produto adicionado com sucesso!");

			FacesContext.getCurrentInstance().addMessage("formPadrao", message);

aí dá pra fazer a tag <h:message for=“formPadrao” />
é isso??

você não precisa fazer <h:messages for=“formPadrao” />…

na pagina eu coloco <h:messages /> dentro do form… esse for tem um id=“formPadrao”

Simplismente não funciona. Não acontece nada, a mensagem não aparece.
To pensando em desistir do spring.
Talvez seja isso
Valeu cara, obrigado!

de qualquer forma vai meu exemplo, cara eu uso o spring nesse projeto também e não tem erro…

[]'s

Po valeu grande se tu usa o spring então não é ele.
Vou baixar o exemplo.
Obrigado mesmo!!!

Ainda não consigo fazer.
Não nesse projeto, fiz um exemplo simples só usando JSF sem spring e funcionou.
No debug eu percebi que o a mensagem vai para o contexto. Mas quando eu mostro não aparece nada.
Tem que fazer alguma configuração a mais por causa do spring?
Pode ser que o tomcat esteja confundindo o que é contexto spring ou JSF? Ou não tem diferença nos contextos?

Deu certo. Daqui a pouco escrevo a solução.

O método que faz a verificação de algo tem que ser um método void.
E no flow do spring a ação não pode te redirecionar para outro lugar. : ) Isso é meio óbvio, mas na hora eu não tava percebendo.
Feliz Natal alberto_ribeiro!
E para todos que visitarem.