seguinte, fiz 1 projeto web criei uma classe qualquer anotei com @Stateless e fiz deploy no glassfish v3… ao jogar os jars do vRaptor no lib do projeto web ele apresenta o seguinte erro.
creio que isso aconteça pq o projeto é web e não aceita @Stateless
bruno.costa
é Java EE 6 ejb 3.1 projeto web aceita @Stateless, se eu manipular o servlet na mão funciona inclusive CDI.
e é só com os jars do vRaptor
Lucas_Cavalcanti
se vc tira só o vraptor-3.x.x.jar o problema pára?
o problema, talvez, seja por causa do web-fragments.xml que o jar tem pra que vc não precise registrá-lo no web.xml
bruno.costa
Lucas Cavalcanti:
se vc tira só o vraptor-3.x.x.jar o problema pára?
o problema, talvez, seja por causa do web-fragments.xml que o jar tem pra que vc não precise registrá-lo no web.xml
tirei somente o jar do vraptor-3.2.0 e o problema parou !
pra resolver eu tenho que remover o web-fragments.xml e registrar o vraptor no web.xml ? isso resolve? se puder colocar um exemplo de como fazer ajuda rsrs obrigado.
Lucas_Cavalcanti
abra o jar com o seu programa que abre zips, vá na pasta META-INF e delete o web-fragments.xml
java.lang.RuntimeException: Unable to load EJB module. DeploymentContext does not contain any EJB Check archive to ensure correct packaging for /Users/brunocosta/Desenvolvimento/Java/AppServer/glassfishv3/glassfish/domains/domain1/eclipseApps/WebEscolhe
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:133)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:63)
at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:175)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:216)
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 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:680)
GRAVE: Exception while loading the app
java.lang.RuntimeException: Unable to load EJB module. DeploymentContext does not contain any EJB Check archive to ensure correct packaging for /Users/brunocosta/Desenvolvimento/Java/AppServer/glassfishv3/glassfish/domains/domain1/eclipseApps/WebEscolhe
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:133)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:63)
at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:175)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:216)
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 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:680)
bruno.costa
Lucas se vc quiser eu te mando o projeto é um teste somente.
Lucas_Cavalcanti
não tenho glassfish na minha máquina, não tenho como simular o seu erro…
Ok, found the cause (thanks much for providing the test case!):
EjbSniffer was retrieved after scanning the archive: one (or more) of the library jars packaged in the archive contains EJBs with component annotations. So the ejb container was asked to load the module later.
The ejb container was not able to find the corresponding metadata because the web.xml is 2.4 version so the meta-data processing skipped the annotation processing (we only process annotations for Java EE 5+ schema versions).
se vc roda sua aplicação num tomcat normal funciona?
se sim, tenta tirar o jar do VRaptor, criar um filter na sua aplicação, registrar no seu web.xml e ver se a aplicação funciona
bruno.costa
Lucas Cavalcanti:
se vc roda sua aplicação num tomcat normal funciona?
se sim, tenta tirar o jar do VRaptor, criar um filter na sua aplicação, registrar no seu web.xml e ver se a aplicação funciona
tomcat suporta ejb? acho que não.
Lucas_Cavalcanti
mas vc tem um projeto web, certo? coloca só ele no tomcat
bruno.costa
tenho um projeto web com uma classe @Stateless (EJB 3.1) não existe essa anotação
Lucas_Cavalcanti
se vc tira essa anotação @Stateless o projeto chega a subir no glassfish? ou tanto faz?
bruno.costa
se eu tirar o @Stateless ele sobe, se eu deixar a anotação e retirar o jar do vRaptor ele também sobe (publica o EJB no JNDI e tudo) por isso to achando estranho. o problema é só com o jar do vRaptor, estou baixando o jBoss 6 pra ver se funciona.
Lucas_Cavalcanti
bruno, a gente conseguiu reproduzir o problema aqui, vou ver se há alguma solução fácil, senão eu corrijo no vraptor e te mando um snapshot
[]'s
bruno.costa
Lucas Cavalcanti:
bruno, a gente conseguiu reproduzir o problema aqui, vou ver se há alguma solução fácil, senão eu corrijo no vraptor e te mando um snapshot
[]'s
Muito obrigado, eu to achando que o vRaptor sobrescreve alguma coisa do container.
Lucas_Cavalcanti
bruno, consegui resolver do seguinte jeito: colocando o jar do hibernate*.jar
aparentemente o Glassfish tá escaneando o jar do vraptor, e como o SessionFactoryCreator tem a anotação @PostConstruct e @PreDestroy, o glassfish o interpreta como sendo um ejb, mas dá um NoClassDefFound.
se vc não puder colocar o hibernate*.jar, a gente pode tentar ver outras opções:
criar as classes org.hibernate.Session e org.hiberante.SessionFactory na sua aplicação, sem nenhuma implementação
abrir o jar do VRaptor e apagar o pacote br.com.caelum.vraptor.util.hibernate
bruno.costa
Lucas, vou testar mais tarde se der tempo e te aviso, obrigado pela solução.
bruno.costa
Lucas, funcionou perfeito, obrigado, eu apaguei o pacote br.com.caelum.vraptor.util.hibernate