Criei um projeto Seam e ele já me começa com alguns erros na classe Authenticator, mesmo assim mandei o rodar no servidor JBoss 4.2 ele dá o erro abaixo:
Exception during request processing:
Caused by java.lang.IllegalStateException with message: "No phase id bound to current thread (make sure you do not have two SeamPhaseListener instances installed)"
org.jboss.seam.contexts.PageContext.getPhaseId(PageContext.java:162)
org.jboss.seam.contexts.PageContext.isBeforeInvokeApplicationPhase(PageContext.java:174)
org.jboss.seam.contexts.PageContext.getCurrentWritableMap(PageContext.java:90)
...
Eu resolvi esse problema retirando as linhas que mapeam o jboss-seam.jar do arquivo application.xml
Parece realmente um problema de ter mais de um jboss-seam.jar no classpath do deploy.
A questão não é exatamente ter mais de um jboss-seam.jar na aplicação, mas ter mais de um registro do SeamPhaseListener no faces-config.xml.
Toda introdução ao Seam ensina a colocar as linhas abaixo no faces-config.xml:
org.jboss.seam.jsf.SeamPhaseListener
No entanto, pelo menos no Seam 2.0.3 (não estou com versões anteriores agora pra checar), o jboss-seam.jar vem com um faces-config.xml que já possui esta declaração.
Resumindo, não insere mais essas linhas porque elas já foram inseridas.