Problema com deploy utilizando VRaptor 3.3 e JBoss 6

11 respostas
yorgan

Olá pessoal,
Tenho uma aplicação EAR e utilizo o VRaptor 3.3.1 na camada WEB.
No eclipse o projeto está executando normalmente, mas ao enviar o EAR para o JBoss 6.0 Final, recebo o seguinte erro:

11:33:18,338 ERROR [[/simweb]] Exception starting filter vraptor: br.com.caelum.vraptor.scan.ScannerException: Could not scan base packages
        at br.com.caelum.vraptor.scan.ScannotationComponentScanner.scanBasePackages(ScannotationComponentScanner.java:85) [:]
        at br.com.caelum.vraptor.scan.ScannotationComponentScanner.scan(ScannotationComponentScanner.java:55) [:]
        at br.com.caelum.vraptor.scan.WebAppBootstrapFactory.create(WebAppBootstrapFactory.java:65) [:]
        at br.com.caelum.vraptor.ioc.spring.SpringProvider.start(SpringProvider.java:83) [:]
        at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:110) [:]
        at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:103) [:]
        at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:447) [:6.0.0.Final]
        at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3246) [:6.0.0.Final]
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:3843) [:6.0.0.Final]
        at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:294) [:6.0.0.Final]
        at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:146) [:6.0.0.Final]
        at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:477) [:6.0.0.Final]
        at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118) [:6.0.0.Final]
        at org.jboss.web.deployers.WebModule.start(WebModule.java:95) [:6.0.0.Final]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_24]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_24]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_24]
        at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_24]
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157) [:6.0.0.GA]
        at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96) [:6.0.0.GA]
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) [:6.0.0.GA]
        at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:271) [:6.0.0.GA]
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:670) [:6.0.0.GA]
        at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206) [:2.2.0.GA]
        at $Proxy41.start(Unknown Source)       at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:53) [:2.2.0.GA]
        at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:41) [:2.2.0.GA]
        at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:301) [:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:894) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:641) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:182) [:2.2.0.GA]
        at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:58) [:2.2.0.GA]
        at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62) [:2.2.0.GA]
        at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55) [:2.2.0.GA]
        at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179) [:2.2.0.GA]
        at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1832) [:2.2.0.GA]
        at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1550) [:2.2.0.GA]
        at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1571) [:2.2.0.GA]
        at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1603) [:2.2.0.GA]
        at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1491) [:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:939) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:654) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.deployers.plugins.deployers.DeployersImpl.change(DeployersImpl.java:1983) [:2.2.0.GA]
        at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:1076) [:2.2.0.GA]
        at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:679) [:2.2.0.GA]
        at org.jboss.system.server.profileservice.deployers.MainDeployerPlugin.process(MainDeployerPlugin.java:106) [:6.0.0.Final]
        at org.jboss.profileservice.dependency.ProfileControllerContext$DelegateDeployer.process(ProfileControllerContext.java:143) [:0.2.2]
        at org.jboss.profileservice.dependency.ProfileDeployAction.deploy(ProfileDeployAction.java:151) [:0.2.2]
        at org.jboss.profileservice.dependency.ProfileDeployAction.installActionInternal(ProfileDeployAction.java:94) [:0.2.2]
        at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54) [jboss-kernel.jar:2.2.0.GA]
        at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42) [jboss-kernel.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:939) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:654) [jboss-dependency.jar:2.2.0.GA]
        at org.jboss.profileservice.dependency.ProfileActivationWrapper$BasicProfileActivation.start(ProfileActivationWrapper.java:190) [:0.2.2]
        at org.jboss.profileservice.dependency.ProfileActivationWrapper.start(ProfileActivationWrapper.java:87) [:0.2.2]
        at org.jboss.profileservice.dependency.ProfileActivationService.activateProfile(ProfileActivationService.java:215) [:0.2.2]
        at org.jboss.profileservice.dependency.ProfileActivationService.activate(ProfileActivationService.java:159) [:0.2.2]
        at org.jboss.profileservice.bootstrap.AbstractProfileServiceBootstrap.activate(AbstractProfileServiceBootstrap.java:112) [:0.2.2]
        at org.jboss.profileservice.resolver.BasicResolverFactory$ProfileResolverFacade.deploy(BasicResolverFactory.java:87) [:0.2.2]
        at org.jboss.profileservice.bootstrap.AbstractProfileServiceBootstrap.start(AbstractProfileServiceBootstrap.java:91) [:0.2.2]
        at org.jboss.system.server.profileservice.bootstrap.BasicProfileServiceBootstrap.start(BasicProfileServiceBootstrap.java:132) [:6.0.0.Final]
        at org.jboss.system.server.profileservice.bootstrap.BasicProfileServiceBootstrap.start(BasicProfileServiceBootstrap.java:56) [:6.0.0.Final]
        at org.jboss.bootstrap.impl.base.server.AbstractServer.startBootstraps(AbstractServer.java:827) [jboss-bootstrap-impl-base.jar:2.1.0-alpha-5]
        at org.jboss.bootstrap.impl.base.server.AbstractServer$StartServerTask.run(AbstractServer.java:417) [jboss-bootstrap-impl-base.jar:2.1.0-alpha-5]
        at java.lang.Thread.run(Thread.java:680) [:1.6.0_24]
Caused by: java.io.FileNotFoundException: /Users/daniel/Documents/Desenvolvimento/servers/jboss-6.0.0.Final/server/default/deploy/simweb_ear.ear/simweb_web.war/WEB-INF/lib/vraptor-3.3.0.jar (Not a directory)
        at java.io.FileInputStream.open(Native Method) [:1.6.0_24]
        at java.io.FileInputStream.<init>(FileInputStream.java:106) [:1.6.0_24]
        at org.jboss.vfs.spi.RootFileSystem.openInputStream(RootFileSystem.java:55) [jboss-vfs.jar:3.0.0.GA]
        at org.jboss.vfs.protocol.FileURLConnection.getInputStream(FileURLConnection.java:73) [jboss-vfs.jar:3.0.0.GA]
        at java.net.URL.openStream(URL.java:1010) [:1.6.0_24]
        at org.scannotation.archiveiterator.FileProtocolIteratorFactory.create(FileProtocolIteratorFactory.java:23) [:]
        at org.scannotation.archiveiterator.IteratorFactory.create(IteratorFactory.java:40) [:]
        at org.scannotation.AnnotationDB.scanArchives(AnnotationDB.java:291) [:]
        at br.com.caelum.vraptor.scan.ScannotationComponentScanner.scanPackage(ScannotationComponentScanner.java:103) [:]
        at br.com.caelum.vraptor.scan.ScannotationComponentScanner.scanBasePackages(ScannotationComponentScanner.java:80) [:]
        ... 88 more

Testei com a versão 3.3.0 e 3.3.1 e nas duas o erro persiste.
Se eu utilizar a versão 3.2 sem o web-fragment, o projeto executa normalmente no servidor.

[]'s
Daniel

11 Respostas

Lucas_Cavalcanti

dá uma olhada nesse tópico:

http://www.guj.com.br/prepost/241883/1252584/vraptor-331--jboss-as-51

a solução é usar o Static Scanning, e o garcia-jj postou um código do ant que faz isso.

o problema é que o vraptor (na verdade o scannotation) não consegue escanear um war dentro de um ear. Usar o ear exploded também resolve.

yorgan

Eu vou testar essa solução, mas por que a versão 3.2 (sem web-fragment) funciona normalmente?
A parte do scanning foi alterada?

[]'s
Daniel

Lucas_Cavalcanti

sim, o scanning foi alterado

Andre_Brito

Nossa, viajei. Postei algo nada a ver.

yorgan

Não sei, acho que vou continuar por enquanto com a versão 3.2.

Andre_Brito

yorgan, me desculpe, postei algo nada a ver. Quando editei a mensagem nem vi que você havia postado. Me desculpe.

yorgan

Lucas,
Só para eu me organizar aqui.
A issue aberta para esse tipo de caso, vocês pretendem trata-la ou por enquanto a idéia é seguir com as soluções comentadas?

[]'s
Daniel

Lucas_Cavalcanti

A gente pretende tratá-la sim. O garcia-jj conseguiu reproduzir, mas não conseguiu resolver ainda, preciso ver com ele… se você tiver idéia de como resolver também, ajudas são muito bem-vindas =)

G

Oi pessoal. Eu já havia reportado esse erro, inclusive outro usuário do vraptor reportou uma issue já sobre isso.

O que acontece é que quando você faz o deploy de uma aplicação chamada teste, por exemplo, em um war dentro de um ear, o endereço das classes serão algo como: /opt/jboss-eap/server/default/deploy/teste.ear/teste.war/WEB-INF/classes. Só que quando a java.net.URL tenta ler isso dá erro porque teste.ear não é um diretório, mas sim um arquivo.

Ainda não consegui olhar isso com calma por causa do meu tempo. Não sei de quem é a culpa, se é do scannotation, Java ou do jboss-vfs. Fiz alguns testes curtos mas ainda não sei uma forma de resolver. Vou ver se consigo fazer uns testes hoje a noite com um brank-project que tenho aqui.

De qualquer forma, uma sugestão que dou a vocês é em ambiente de produção usar o static scanner, pois o tempo de startup do servidor é muito menor.

G

Tem coisas que me dão um medo… por alguma razão no JBoss não consigo saber quando é um diretório ou arquivo. Na linha onde ele verifica se icob.ear isfile, deveria retornar true.

21:00:04,407 INFO [STDOUT] file:/opt/jboss-6.0.0.Final/server/default/deploy/icob.ear/icob-web.war/WEB-INF/lib/vraptor-3.3.2-SNAPSHOT.jar >> false 21:00:04,407 INFO [STDOUT] file:/opt/jboss-6.0.0.Final/server/default/deploy/icob.ear/icob-web.war/WEB-INF/lib >> false 21:00:04,407 INFO [STDOUT] file:/opt/jboss-6.0.0.Final/server/default/deploy/icob.ear/icob-web.war/WEB-INF >> false 21:00:04,407 INFO [STDOUT] file:/opt/jboss-6.0.0.Final/server/default/deploy/icob.ear/icob-web.war >> false 21:00:04,407 INFO [STDOUT] file:/opt/jboss-6.0.0.Final/server/default/deploy/icob.ear >> false 21:00:04,408 INFO [STDOUT] file:/opt/jboss-6.0.0.Final/server/default/deploy >> false 21:00:04,408 INFO [STDOUT] file:/opt/jboss-6.0.0.Final/server/default >> false 21:00:04,408 INFO [STDOUT] file:/opt/jboss-6.0.0.Final/server >> false 21:00:04,408 INFO [STDOUT] file:/opt/jboss-6.0.0.Final >> false

G

yorgan, o Lucas empacotou uma correção para esse problema. Faça um teste com esse jar e nos avise.

https://oss.sonatype.org/content/repositories/snapshots/br/com/caelum/vraptor/3.4.0-SNAPSHOT/vraptor-3.4.0-20110624.225417-6.jar

Abraços

Criado 16 de junho de 2011
Ultima resposta 24 de jun. de 2011
Respostas 11
Participantes 4