Glassfish v3 + Jboss Seam

Galera,

tenho uma aplicação EJB 3, feita no netBeans 6.8. Ou seja, utilizo o glassfish v3 (integrado do netBeans) e consequentemente JSF 2 (com Facelets). Até ai sem problemas (tirando o fato de que o RichFaces 3.x não funciona com JSF 2). Acontece que estou tentando colocar o Jboss SEAM 2.2 nesta app, mas não coinsigo nem f…

Se eu coloco os JARs dentro do glassfish direto (…domain1/lib/ext/) o coitado já da erro e outras aplicações que estão nele param de executar.

Se eu coloco os JARs como library do projeto, o netBeans não consegue fazer o deploy da aplicação. Abaixo o trace:

com.sun.faces.config.ConfigurationException: 
  Source Document: jar:file:/E:/Netbeans-workspace/HelloSeam/build/web/WEB-INF/lib/jboss-seam-debug.jar!/META-INF/faces-config.xml
  Cause: Class 'org.jboss.seam.debug.jsf.SeamDebugPhaseListener' is missing a runtime dependency: java.lang.NoClassDefFoundError: com/sun/facelets/compiler/Compiler
        at com.sun.faces.config.processor.AbstractConfigProcessor.createInstance(AbstractConfigProcessor.java:281)
        at com.sun.faces.config.processor.LifecycleConfigProcessor.addPhaseListeners(LifecycleConfigProcessor.java:132)
        at com.sun.faces.config.processor.LifecycleConfigProcessor.process(LifecycleConfigProcessor.java:111)
        at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:114)
        at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:223)
        at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:335)
        at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:223)
        at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:4591)
        at com.sun.enterprise.web.WebModule.contextListenerStart(WebModule.java:535)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:5193)
        at com.sun.enterprise.web.WebModule.start(WebModule.java:499)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:928)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:912)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:694)
        at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1933)
        at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1605)
        at com.sun.enterprise.web.WebApplication.start(WebApplication.java:90)
        at org.glassfish.internal.data.EngineRef.start(EngineRef.java:126)
        at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:241)
        at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:236)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:339)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183)
        at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1176)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1224)
        at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:365)
        at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:204)
        at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
        at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100)
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:245)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
        at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
        at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
        at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
        at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
        at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NoClassDefFoundError: com/sun/facelets/compiler/Compiler
        at java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
        at java.lang.Class.getConstructor0(Class.java:2699)
        at java.lang.Class.newInstance0(Class.java:326)
        at java.lang.Class.newInstance(Class.java:308)
        at com.sun.faces.config.processor.AbstractConfigProcessor.createInstance(AbstractConfigProcessor.java:270)
        ... 47 more
Caused by: java.lang.ClassNotFoundException: com.sun.facelets.compiler.Compiler
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at org.glassfish.web.loader.WebappClassLoader.findClass(WebappClassLoader.java:949)
        at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1420)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
        ... 53 more

SEVERE: PWC1306: Startup of context /HelloSeam failed due to previous errors
SEVERE: PWC1305: Exception during cleanup after start failed
org.apache.catalina.LifecycleException: PWC2769: Manager has not yet been started
        at org.apache.catalina.session.StandardManager.stop(StandardManager.java:892)
        at org.apache.catalina.core.StandardContext.stop(StandardContext.java:5383)
        at com.sun.enterprise.web.WebModule.stop(WebModule.java:530)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:5211)
        at com.sun.enterprise.web.WebModule.start(WebModule.java:499)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:928)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:912)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:694)
        at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1933)
        at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1605)
        at com.sun.enterprise.web.WebApplication.start(WebApplication.java:90)
        at org.glassfish.internal.data.EngineRef.start(EngineRef.java:126)
        at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:241)
        at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:236)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:339)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183)
        at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1176)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1224)
        at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:365)
        at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:204)
        at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
        at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100)
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:245)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
        at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
        at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
        at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
        at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
        at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
        at java.lang.Thread.run(Thread.java:619)

SEVERE: ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! com.sun.facelets.compiler.Compiler
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:5216)
........

Tudo bem que " java.lang.NoClassDefFoundError: com/sun/facelets/compiler/Compiler" diz que não encontrou uma classe, o que teoricamente falta um JAR. Mas se é jar do facelets, não deveria estar integrado no jsf-api/jsf-impl (já que glassfish utiliza o Mojarra)?

Alguma alma caridosa/habilidosa já passou por isso?

Alguem teria um tutorial (o qual funcionasse) de como configurar aplicações com SEAM, utilizando netBeans (de preferencia 6.5 ou mais nova) e glassfish v3?

Muito obrigado.
Carvo.

Outra coisinha, este tutorial eu já tentei utilizar e não consegui obter sucesso.

http://www.wilhelmtell.nl/handleidingen/Java/handleiding_54/HalloWorld_using_Seam_with_the_IDE_Netbeans_6.5_on_Glassfish/index.html

Até pq ele utiliza glassfish v2.

Mais uma vez obrigado.
Carvo.

POis é. Estou com o mesmo problema. Parece que o Seam não funciona no GFv3, por causa da arquitetura modular.

Veja esse JIRA aberto pelo Pete Muir:

https://jira.jboss.org/jira/browse/JBSEAM-3165

e essa mensagem no fórum da jBoss:

http://www.seamframework.org/Community/AnyEJB31Plans

Parece que eles estão trabalhando nisso.

Estou no meio de um projeto com o Seam + GFv2.1 + Richfaces, usando NetBeans.

Há incompatibilidades também entre o RF e o JSF2. Vou aguardar o Seam 3 para migrar.

Geraldo.

Ola Geraldo.

Brigadão pela resposta.

Realmente teremos que esperar o Seam 3. Mas eu jurava que era algum tipo de incompatibilidade com o JSF2, mas pelo visto o buraco é mais em baixo.

E aproveitando sua experiência com projetos utilizando estas ferramentas (diga-se de passagem, exatamente as que eu pretendo usar), tu acha que valeria a pena eu começar um projeto utilizando Seam2.2 + GFv2.1 + RichFaces3.x, e depois migrar cada um deles??

Eu fico um pouco receoso pois eu precisaria utilizar JSF1.2 e consequentemente não utilizaria anotações. Não seria muita refatoração? Considerando que eu realmente não gosto de XML, a não ser para casos extremamente necessários… :slight_smile:

Se alguém tbm tiver algum outro conselho seria de grande ajuda, já que estou prestes a começar um projeto do ZERO, em janeiro próximo.

Agradecido,
Carvo.

Cravo,

olha, esse foi me primeiro projeto usando Seam. Eu tinha desenvolvido um pequeno projeto anterior usando JSF puro, mas não estava satisfeito. Achava o JSF muito trabalhoso. Quando li sobre o Seam fiiquei empolgado. Eu já admirava o trabalho do Gavin King com o Hibernate (o cara realmente é muito bom) e pensei: vamos nessa.

O Seam é uma mão na roda, faz a stack J2EE parecer brincadeira de criança. É o tipo da coisa que faz você refletir: pô, como não pensaram nisso antes! No entanto, nem tudo são flores, a configuração do framework para rodar no GF, pelo menos para mim, foi um inferno. Fiquei meses tentando ler todo o material existente na NET sobre o assunto (que, na época, era esparso), comprei livros, mas havia muita coisa desatualizada, que produzia erro. Estava ficando perdido. fazia pergunta nos fóruns e ninguém respondia. Embora eu não estivesse num sufoco muito grande em relação a prazos, ficava frustrado pois não consegui avançar, não conseguia fazer os exemplos mais simples funcionarem. Eu já estava a ponto de desistir. Pensei: o Seam é ótimo, mas para configurá-lo para outro AS que não seja o JBoss, você tem de ser um Java Guru.

Mas não desisti. Ele parecia resolver tantos problemas, que perserverei. Até que consegui fazer os exemplos funcionarem e muitas dúvidas que eu tinha começaram a fazer sentido. Não estava satisfeito com a necessidade de definir todos os EJB no Glassfish, necessidade que não existe no JBoss e era um dos motivos de meus exemplos não funcionarem. Então, comecei a usar WAR em vez de EAR (POJO em vez de EBJ). Claro que perdi algumas funcionalidades, mas o Seam fornece controle de transação e ficou muito mais simples.

Agora, com o EE6 e CDI, vai dar pra retornar ao EJB no GF, usando empacotamento WAR. Ficou tudo mais simples, como deveria ser. Ah, e que maravilha o uso mais generalizado de anotações (eu comecei a apreciar isso com o Seam, que as usa muito). Também não gosto de XML (embora reconheça que para algumas POUCAS coisa ele é mais eficaz indicado do que anotações, como configurações globais que afetam vários módulos).

Eu aconselharia, para um projeto novo, começar já com Java EE6 (JSF2 + facelets), EJB 3.1, usando anotações e principalmente CDI, pois o Seam 3 vai seguir esse caminho e, creio, vai apenas adicionar algumas funcionalidades, mas o esqueleto básico do CDI/Weld será mantido. Então, o seu aplicativo poderá evoluir sem muitas refactorações. Além do mais, será mais fácil conseguir ajuda, bibiografia, documentação técnica, etc, já que nos proximos meses haverá uma enxurrada de informações sobre o EE6 na net. E o GF v3 roda CDI rediondinho.

É isso. Espero ter ajudado. Qualquer coisa, estou às ordens.

Um abraço e boa sorte no seu projeto,

Geraldo.

Geraldo,

muito agradecido pela explanação, realmente ajudou muito, mas naturalmente gerou mais algumas dúvidas… :lol:

Realmente, eu tenho visto o Seam e tenho achado muito bom. Estou estudando suas anotações e fluxos, para não perder tempo. E tbm andei estudando o Weld, já que ele é o núcleo do Seam.

Certamente a intenção é usar o JEE6, JSF 2 (+facelets), GFv3, Seam 3 e RichFaces 4. No caso, RF é o mais fácil de ser resolvido, basta sair a nova versão e utilizar suas tags.

O que me preocupa principalmente é que eu pretendo começar o sistema pela parte de autenticação/autorização. Ou seja, primeira coisa que desejo fazer é criar o login e utilizar as anotações e mecanismos de segurança do Seam (@Restrict, etc) para tal. E assim, ja estaria utilizando o Seam. Por isso fiquei empacado, pois não conseguiria utilizar o Seam no GFv3.

Sendo assim, eu não sei se começo pela parte de segurança utilizando versões anteriores (Jsf1.2, GFv2.1, etc) e ja utilizando o Seam, para depois migrar para as versões atuais (o que penso q neste caso teria como principais problemas a migração do servidor e o JSF - apesar de que o Seam facilita bastante esta parte com o JSF). Ou se começo com as versões atuais de servidor e JSF, para só depois colocar o Seam na jogada (e nesse caso me preocupa o que pode ser feito sem ele, o que vou precisar refazer qdo colocá-lo e o q pode ser perdido ao coloca-lo). Quando me referi a refatoração, não era do Seam em relação a nova versão dele, mas em relação ao sistema.

E só mais uma coisinha… :roll:
Este projeto terá diversos clientes (web, desktop e talvez móvel), neste caso, eu precisaria manter o empacotamento EAR? Ou basta um WAR pra dar acesso aos EJBs por um Lookup?

Desculpe tantas palavras, mas sua opnião tem me ajudado muito.

Abraços
Carvo (e olha só, é CARVO e não CRAVO… aeuhaehuheaheahuaehueahua)

Curiosidade,

pq vcs optaram pelo Glassfish? Ou a decisão não foi de vcs?

André,

essencialmente eu optei por ele pois eu considero mais fácil de configurar e administrar, nos testes que fiz me pareceu mais rápido e também possui uma ótima integração com o Netbeans (ferramenta muito boa para esta parte de - jsf-facelets-richfaces -, principalmente no que diz respeito ao ‘code assist’ e redeploy, ambos muito velozes).

Até então eu não via nenhuma vantagem em usar o JBoss AS, tirando o fato de existirem outros projetos da mesma equipe e por isso, frameworks como Seam, possuirem uma “tendencia” a ser mais fácil no Jboss. E no caso do Eclipse, possuir o conjunto de ferramentas (JbossTools), coisa que facilita o desenvolvimento em alguns pontos (configurações e gerações), porém, até onde constatei, direcionado apenas para JBoss AS.

Um outro detalhezinho é que Glassfish é comunidade SUN, não q eles sejam melhores (até pq a equipe RedHat é excelente), mas eu acredito que haja maior integração e cooperação (mais isso uma opnião bem infundada… :stuck_out_tongue: ). Mesmo assim, busquei por opções focadas na equipe SUN (NB, Mojarra, GF) e quando ela não supria, fui para a redHat (Seam/Weld e RichFaces).

Abraços,
Carvo.

Geraldo, estou ralando a algum tempo, quase desistindo, tentei rodar os exemplos do seam 2.2 e jpa e jee, eu consegui apenas a versao sem EAR, ou seja, sem EJB`s, e eu gostaria muito de uma ajuda de como criar um projeto para seam que rode no glassfish v2.

Como vc ja conseguiu, voce se importaria de me dar uma ajuda, me enviando um tutorial passo a passo ensinando quais arquivos devo modificar, como criar um projeto corretamente, com seam gen ou nao, ou seja, preciso de um esqueminha que no final funcione, utilizando ejbs.

Apartir deste exemplo eu vou estudar, procurar conhecer bem e aprofundar nos estudos, isto seria um diferencial para mim, aprender jboss seam.

Voce poderia me ajudar?

Ou qualquer outra pessoa, que tenha um projeto jboss seam rodando no glassfish com ejbs, poderia me ajudar?

Pra completar, o que vem a ser weld? desculpe me a falta de conhecimento, a dúvida principal está acima, se puderem me ajudar vou ficar muito agradecido.

Obrigado.

Pessoal, alguem com alguma ajuda para minhas dúvidas? Aguardando…

Eu tive muita dificuldade em usar o GF com o Seam, usando EJB e empacotando como EAR. Então, como não tinha muito tempo para ficar pesquisando e como o Seam oferecia realmente muitas vantagens e praticidade, resolvi fazer o projeto como Web Project (empacotado num WAR). Tá tudo funcionando muito bem. Não voltei mais para o EAR.

O Weld é o nome que a JBoss deu para a implementação de referência do CDI (Context and Dependency Injection), que é uma especificação (JSR-299). No início chamava-se WebBeans e depois mudou para Weld. O Weld já vem integrado no GlassFish v3.

Geraldo.

Resurgindo o Tópico,

fiz um projeto Seam sem uso de EJBs, mas estou tendo problema para efetuar o deploy no GFv3. Abaixo segue o stack trace do erro:


[#|2010-12-27T18:06:45.877-0200|SEVERE|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_T
hreadID=28;_ThreadName=http-thread-pool-4848-(2);|java.lang.IllegalStateException: Class invariant violation
        at org.apache.log4j.LogManager.getLoggerRepository(LogManager.java:199)
        at org.apache.log4j.LogManager.getLogger(LogManager.java:228)
        at org.apache.log4j.Logger.getLogger(Logger.java:104)
        at org.jboss.seam.log.Log4JProvider.<init>(Log4JProvider.java:31)
        at org.jboss.seam.log.Logging.getLogProvider(Logging.java:43)
        at org.jboss.seam.log.Logging.getLogProvider(Logging.java:50)
        at org.jboss.seam.transaction.EjbSynchronizations.<clinit>(EjbSynchronizations.java:43)
        at sun.misc.Unsafe.ensureClassInitialized(Native Method)
        at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(Unknown Source)
        at sun.reflect.ReflectionFactory.newFieldAccessor(Unknown Source)
        at java.lang.reflect.Field.acquireFieldAccessor(Unknown Source)
        at java.lang.reflect.Field.getFieldAccessor(Unknown Source)
        at java.lang.reflect.Field.get(Unknown Source)
        at org.glassfish.web.loader.WebappClassLoader.clearReferences(WebappClassLoader.java:1851)
        at org.glassfish.web.loader.WebappClassLoader.stop(WebappClassLoader.java:1680)
        at org.glassfish.web.loader.WebappClassLoader.preDestroy(WebappClassLoader.java:1649)
        at org.glassfish.deployment.common.DeploymentContextImpl.getClassLoader(DeploymentContextImpl.java:212)
        at org.glassfish.deployment.common.DeploymentContextImpl.getClassLoader(DeploymentContextImpl.java:164)
        at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:159)
        at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:211)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:338)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183)
        at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1176)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1224)
        at org.glassfish.admingui.common.util.LocalDeploymentFacility$LocalDFCommandRunner.run(LocalDeploymentFacility.j
ava:138)
        at org.glassfish.deployment.client.AbstractDeploymentFacility.deploy(AbstractDeploymentFacility.java:350)
        at org.glassfish.admingui.common.util.DeployUtil.invokeDeploymentFacility(DeployUtil.java:89)
        at org.glassfish.admingui.common.util.DeployUtil.deploy(DeployUtil.java:66)
        at org.glassfish.admingui.common.handlers.DeploymentHandler.deploy(DeploymentHandler.java:186)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at com.sun.jsftemplating.layout.descriptors.handler.Handler.invoke(Handler.java:442)
        at com.sun.jsftemplating.layout.descriptors.LayoutElementBase.dispatchHandlers(LayoutElementBase.java:420)
        at com.sun.jsftemplating.layout.descriptors.LayoutElementBase.dispatchHandlers(LayoutElementBase.java:394)
        at com.sun.jsftemplating.layout.event.CommandActionListener.invokeCommandHandlers(CommandActionListener.java:150
)
        at com.sun.jsftemplating.layout.event.CommandActionListener.processAction(CommandActionListener.java:98)
        at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
        at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:772)
        at javax.faces.component.UICommand.broadcast(UICommand.java:300)
        at com.sun.webui.jsf.component.WebuiCommand.broadcast(WebuiCommand.java:166)
        at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)
        at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)
        at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
        at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
        at com.sun.webui.jsf.util.UploadFilter.doFilter(UploadFilter.java:223)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
        at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
        at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:239)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
        at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
        at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
        at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
        at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
        at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
        at java.lang.Thread.run(Unknown Source)
|#]

O Stack é maior porém não vou postá-lo por completo para não ficar complicado de ler. Não tem doutor que faça a aplicação subir. Estou fazendo o deploy via .war. Outras aplicações não JSF/Seam based eu faço deploy tranquilamente.

Ninguém mais tentou?

Se for usar o Seam não é justamente pra evitar o uso de EJBs?
O que trabalho agora é com Spring 3 + JSF 1.2 (ou Struts 2) + Jboss 5, sem EAR nem EJBs. As vezes a gente fica tentado a usar as últimas versões de todos os frameworks e servidores, mas a mão de obra pra fazer isso rodar é tão grande que não vale o esforço. Sem contar que as vezes perdemos um tempão pra descobrir um bug que não tem previsão de fix aí jogamos tudo no lixo!
Outra opção que gosto é GF3 + JSF2 usando o CDI do Java EE, aí neste caso com EJB e EAR e sem Aspectos. Usei por um tempão GF2.1 + JSF1.2 no Eclipse com jboss tools e richfaces 3, funcionou muito bem, no entanto não tinha CDI, nem um controle de transações mais elaborado muito menos aspectos.