Vraptor 4 - beta 4 + JBoss AS 7 ou Glassfish 4

461 views
Skip to first unread message

Marcio Angelo Matté

unread,
Jan 17, 2014, 9:06:18 AM1/17/14
to caelum-...@googlegroups.com

Bom dia (praticamente boa tarde),

Estou tentado subir uma app vraptor com somente um controller default para a página principal, e tentei no Jboss AS7 e Glassfish 4. Alguém aí já usou esta estrutura para uma app vraptor 4 com sucesso?

Abraços!

--
Marcio Angelo Matté
marcio...@gmail.com

Otávio Garcia

unread,
Jan 17, 2014, 9:07:47 AM1/17/14
to caelum-...@googlegroups.com
O vraptor4 não roda no JBoss AS 7.1, pois é necessário que o appserver implemente Java EE 7. Mais info: https://github.com/caelum/vraptor4/wiki/17-Depend%C3%AAncias-e-pr%C3%A9-requisitos

Qual o erro que acontece?


2014/1/17 Marcio Angelo Matté <marcio...@gmail.com>

--
You received this message because you are subscribed to the Google Groups "caelum-vraptor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-vrapto...@googlegroups.com.
To post to this group, send email to caelum-...@googlegroups.com.
Visit this group at http://groups.google.com/group/caelum-vraptor.
For more options, visit https://groups.google.com/groups/opt_out.

Marcio Angelo Matté

unread,
Jan 17, 2014, 12:05:34 PM1/17/14
to caelum-...@googlegroups.com
Olá Otávio,

quanto às configurações do VRaptor com o Glassfish 4 tudo Ok, descartei o JBoss.

Minha aplicação é EAR, e uso o Maven para gerenciá-la.

Meu problema agora é que o EAR encapsula um módulo EJB e um WAR, conforme se utiliza normalmente.

Meus componentes @Named para o módulo WAR ficam em pacotes no próprio WAR, porém utilizo EJB´s que normalmente estão no módulo EJB. Para que o WAR consiga acessar estes EJB´s, eu declaro a dependência do módulo EJB com escopo provided, e aí o Weld não acha na hora de completar o deploy. Se mudo o escopo para compile, o Weld reclama que o módulo EJB só pode estar encapsulado uma única vez do wo EAR, e de fato faz todo sentido. 

A pergunta: como farei para que o meu módulo WAR possa acessar os EJB´s do módulo EJB sem que este seja encapsulado duas vezes. Um detalhe a mais: No meu componente @Named eu injeto um EJB com @EJB.

Att. Marcio


----------------------------------------
output do eap-ear:

cd C:\Users\YWE\Documents\NetBeansProjects\eap\eap-ear; JAVA_HOME=C:\\java\\jdk7 M2_HOME=C:\\java\\maven3 cmd /c "\"\"C:\\java\\maven3\\bin\\mvn.bat\" -Dnetbeans.deploy=true -Dmaven.ext.class.path=C:\\java\\nb74\\java\\maven-nblib\\netbeans-eventspy.jar package\"\""
Scanning for projects...
                                                                        
------------------------------------------------------------------------
Building eap-ear 1.0-SNAPSHOT
------------------------------------------------------------------------

--- maven-ear-plugin:2.8:generate-application-xml (default-generate-application-xml) @ eap-ear ---
Generating application.xml

--- maven-resources-plugin:2.4.3:resources (default-resources) @ eap-ear ---
Using 'UTF-8' encoding to copy filtered resources.
skip non existing resourceDirectory C:\Users\YWE\Documents\NetBeansProjects\eap\eap-ear\src\main\resources

--- maven-ear-plugin:2.8:ear (default-ear) @ eap-ear ---
Copy ear sources to C:\Users\YWE\Documents\NetBeansProjects\eap\eap-ear\target\eap-ear-1.0-SNAPSHOT
Including custom manifest file [C:\Users\YWE\Documents\NetBeansProjects\eap\eap-ear\target\eap-ear-1.0-SNAPSHOT\META-INF\MANIFEST.MF]
Building jar: C:\Users\YWE\Documents\NetBeansProjects\eap\eap-ear\target\eap-ear-1.0-SNAPSHOT.ear
------------------------------------------------------------------------
BUILD SUCCESS
------------------------------------------------------------------------
Total time: 1.703s
Finished at: Fri Jan 17 15:04:11 BRST 2014
Final Memory: 4M/15M
------------------------------------------------------------------------
NetBeans: Deploying on GlassFish Server
    profile mode: false
    debug mode: false
    force redeploy: true
Initial deploying eap-ear to C:\Users\YWE\Documents\NetBeansProjects\eap\eap-ear\target\gfdeploy\eap-ear
Completed initial distribution of eap-ear
GlassFish Server, deploy, null, false
The module has not been deployed.
See the server log for details.
at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:238)
at org.netbeans.modules.maven.j2ee.ExecutionChecker.performDeploy(ExecutionChecker.java:205)
at org.netbeans.modules.maven.j2ee.ExecutionChecker.executionResult(ExecutionChecker.java:123)
at org.netbeans.modules.maven.execute.MavenCommandLineExecutor.run(MavenCommandLineExecutor.java:235)
at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:153)





-------------------------------------

output do glassfish:

INFO:   EJB5181:Portable JNDI names for EJB DefaultBean: [java:global/eap-ear/eap-ejb-1.0-SNAPSHOT/DefaultBean, java:global/eap-ear/eap-ejb-1.0-SNAPSHOT/DefaultBean!br.com.yweti.DefaultBean]
WARNING:   The following warnings have been detected: WARNING: Parameter 1 of type java.util.Set<java.lang.Class<?>> from public void br.com.caelum.vraptor.serialization.Serializee.setElementTypes(java.util.Set<java.lang.Class<?>>) is not resolvable to a concrete type.
WARNING: Parameter 1 of type java.lang.Class<?> from public void br.com.caelum.vraptor.serialization.Serializee.setRootClass(java.lang.Class<?>) is not resolvable to a concrete type.

WARNING:   The following warnings have been detected: WARNING: Parameter cache of type br.com.caelum.vraptor.cache.CacheStore<java.lang.Class<?>, java.lang.Class<? extends br.com.caelum.vraptor.converter.Converter<?>>> from private final br.com.caelum.vraptor.cache.CacheStore<java.lang.Class<?>, java.lang.Class<? extends br.com.caelum.vraptor.converter.Converter<?>>> br.com.caelum.vraptor.core.DefaultConverters.cache is not resolvable to a concrete type.

SEVERE:   Exception during lifecycle processing
org.glassfish.deployment.common.DeploymentException: CDI deployment failure:WELD-001408 Unsatisfied dependencies for type [ComponentBean] with qualifiers [@Default] at injection point [[BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject public br.com.yweti.controller.IndexController(ComponentBean)]
at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:225)
at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:328)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:493)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:527)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:523)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:356)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:522)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:546)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1423)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1500(CommandRunnerImpl.java:108)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1762)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1674)
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534)
at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:224)
at org.glassfish.grizzly.http.server.StaticHttpHandler.service(StaticHttpHandler.java:297)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:246)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
at java.lang.Thread.run(Thread.java:744)
Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [ComponentBean] with qualifiers [@Default] at injection point [[BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject public br.com.yweti.controller.IndexController(ComponentBean)]
at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:403)
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:325)
at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:177)
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:208)
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:519)
at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:505)
at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:480)
at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:536)
at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:216)
... 36 more

SEVERE:   Exception while loading the app
SEVERE:   Undeployment failed for context /eap-web
SEVERE:   Exception while loading the app : CDI deployment failure:WELD-001408 Unsatisfied dependencies for type [ComponentBean] with qualifiers [@Default] at injection point [[BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject public br.com.yweti.controller.IndexController(ComponentBean)]
org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [ComponentBean] with qualifiers [@Default] at injection point [[BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject public br.com.yweti.controller.IndexController(ComponentBean)]
at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:403)
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:325)
at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:177)
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:208)
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:519)
at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:505)
at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:480)
at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:536)
at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:216)
at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:328)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:493)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:527)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:523)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:356)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:522)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:546)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1423)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1500(CommandRunnerImpl.java:108)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1762)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1674)
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534)
at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:224)
at org.glassfish.grizzly.http.server.StaticHttpHandler.service(StaticHttpHandler.java:297)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:246)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
at java.lang.Thread.run(Thread.java:744)

Otávio Garcia

unread,
Jan 17, 2014, 12:33:54 PM1/17/14
to caelum-...@googlegroups.com
No pom.xml do projeto web você tem que declarar o módulo EJB como provided:

        <dependency>
            <groupId>meu.grupo.trilegal</groupId>
            <artifactId>trilegal-ejbc</artifactId>
            <version>1.0-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>

No pom.xml do EAR definir todos os módulos:

        <dependency>
            <groupId>meu.grupo.trilegal</groupId>
            <artifactId>trilegal-ejb</artifactId>
            <version>1.0-SNAPSHOT</version>
            <type>ejb</type>
        </dependency>

        <dependency>
            <groupId>meu.grupo.trilegal</groupId>
            <artifactId>trilegal-web</artifactId>
            <version>1.0-SNAPSHOT</version>
            <type>war</type>
        </dependency>

E para seguir a spec de deploy Java EE, no mesmo pom do EAR definir o maven.ear-plugin com os modulos para gerar o application.xml:


                <configuration>
                    <version>7</version>
                    <defaultLibBundleDir>lib</defaultLibBundleDir>
                    <modules>
                        <webModule>
                            <groupId>meu.grupo.trilegal</groupId>
                            <artifactId>trilegal-web</artifactId>
                            <contextRoot>/</contextRoot>
                        </webModule>
                        <ejbModule>
                            <groupId>meu.grupo.trilegal</groupId>
                            <artifactId>trilegal-ejb</artifactId>
                        </ejbModule>
                    </modules>
                </configuration>


E claro, verifique se no MANIFEST.MF você tem as definições do classpath: Class-Path: trilegal-ejb.jar.

Sugestão: se o deploy falhar, abra o EAR e veja como está a estrutura, se ela segue a spec.


Marcio Angelo Matté

unread,
Jan 17, 2014, 12:37:03 PM1/17/14
to caelum-...@googlegroups.com
Ok, estou fazendo isto neste exato momento seguindo:


Valeu!



2014/1/17 Otávio Garcia <ota...@otavio.com.br>

Marcio Angelo Matté

unread,
Jan 17, 2014, 2:43:26 PM1/17/14
to caelum-...@googlegroups.com
Fiz tudo no braço, pois o processo automatizado do netbeans não sei por que motivo falha quando executa o deploy.

Quase tudo funcionando, depois que fiz uma alteração no controller, o deploy agora causa esta falha:


Um erro ocorreu Erro durante a implantação: Exception while loading the app : CDI deployment failure:WELD-001408 Unsatisfied dependencies for type [ComponentNamed] with qualifiers [@Default] at injection point [[BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject public br.com.yweti.controller.IndexController(ComponentNamed)]. Consulte o server.log para obter informações detalhadas.       Um erro ocorreu
Erro durante a implantação: Exception while loading the app : CDI deployment failure:WELD-001408 Unsatisfied dependencies for type [ComponentNamed] with qualifiers [@Default] at injection point [[BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject public br.com.yweti.controller.IndexController(ComponentNamed)]. Consulte o server.log para obter informações detalhadas.


Meu controller:

-----
@Controller
public class IndexController {
    
    private ComponentNamed cNamed;

    @Inject
    public IndexController(ComponentNamed cNamed) {
        this.cNamed = cNamed;
    }
        
    @Get("/") public void index(){cNamed.say();}
   
}


Meu componente:
-----
@Named
public class ComponentNamed {
    
    @EJB private final DefaultBean defaultBean;

    @Inject
    public ComponentNamed(DefaultBean defaultBean) {
        this.defaultBean = defaultBean;
    }
    public void say(){
        defaultBean.hello();
    }
}


Meu EJB:
-----
@Stateless
@LocalBean
public class DefaultBean {
   
    public void hello() {
        System.out.println("LOG:  Hello Glassfish!");
    }
}


O EJB está no módulo EJB e o componente e controller, no WAR.

Att. Marcio



Otávio Garcia

unread,
Jan 17, 2014, 2:48:20 PM1/17/14
to caelum-...@googlegroups.com
Seu ComponentNamed está errado. Ou você usa @Inject ou @EJB. Ambos ao mesmo tempo não.

Veja se você tem o beans.xml em todos os médulos. O local é META-INF/beans.xml para os jars, e WEB-INF/beans.xml para wars.

Se mesmo assim não der certo, verifique se a estrutura do EAR gerado está padrão com a spec.


Marcio Angelo Matté

unread,
Jan 17, 2014, 3:00:24 PM1/17/14
to caelum-...@googlegroups.com
Otávio,

tenho o beans.xml em todos os locais dentro de EAR (módulos ejb e war).

Até eu escrever os componentes do jeito que postei estava funcionando, o vraptor mais ejb. Está de acordo com o padrão pois já uso este modelo em um projeto JSF 2.0 (Java EE 6). Depois que criei o ComponentNamed e alterei o Controller é que começou este problema de deploy. 

Conferi conforme tuas dicas mas o problema persiste e com o mesmo stack que enviei na mensagem anterior!

Att. Marcio

Otávio Garcia

unread,
Jan 17, 2014, 3:02:04 PM1/17/14
to caelum-...@googlegroups.com
Se você realmente garante que a estrutura do EAR gerado está correto, mande o stacktrace completo, pois somente com as informações da mensagem não dá para saber o que é.


2014/1/17 Marcio Angelo Matté <marcio...@gmail.com>
Otávio,

Marcio Angelo Matté

unread,
Jan 17, 2014, 3:09:59 PM1/17/14
to caelum-...@googlegroups.com
E EAR está sendo gerado automaticamente pelo Maven, conforme as configurações que você me passou em uma outra mensagem. 

A única coisa que estou fazendo manualmente é acrescentar o Class-path no MANIFEST.MF, pois quando é gerado o .ear o plugin remove a entrada no arquivo de manifesto.


---- LOG do glassfish

[2014-01-17T17:57:14.367-0200] [glassfish 4.0] [INFO] [ejb.portable_jndi_names] [javax.enterprise.system.container.ejb.com.sun.ejb.containers] [tid: _ThreadID=124 _ThreadName=admin-listener(8)] [timeMillis: 1389988634367] [levelValue: 800] [[
  EJB5181:Portable JNDI names for EJB DefaultBean: [java:global/ear-1.0-SNAPSHOT/ejb-1.0-SNAPSHOT/DefaultBean, java:global/ear-1.0-SNAPSHOT/ejb-1.0-SNAPSHOT/DefaultBean!br.com.yweti.DefaultBean]]]

[2014-01-17T17:57:16.243-0200] [glassfish 4.0] [INFO] [] [org.jboss.weld.ClassLoading] [tid: _ThreadID=124 _ThreadName=admin-listener(8)] [timeMillis: 1389988636243] [levelValue: 800] [[
  WELD-000119 Not generating any bean definitions from br.com.caelum.vraptor.observer.upload.CommonsUploadMultipartObserver because of underlying class loading error: Type org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException not found.  If this is unexpected, enable DEBUG logging to see the full error.]]

[2014-01-17T17:57:17.009-0200] [glassfish 4.0] [SEVERE] [NCLS-CORE-00026] [javax.enterprise.system.core] [tid: _ThreadID=124 _ThreadName=admin-listener(8)] [timeMillis: 1389988637009] [levelValue: 1000] [[
  Exception during lifecycle processing
org.glassfish.deployment.common.DeploymentException: CDI deployment failure:WELD-001408 Unsatisfied dependencies for type [ComponentNamed] with qualifiers [@Default] at injection point [[BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject public br.com.yweti.controller.IndexController(ComponentNamed)]
at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:225)
at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:328)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:493)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:527)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:523)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:356)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:522)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:546)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1423)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1500(CommandRunnerImpl.java:108)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1762)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1674)
at org.glassfish.admin.rest.utils.ResourceUtil.runCommand(ResourceUtil.java:235)
at org.glassfish.admin.rest.utils.ResourceUtil.runCommand(ResourceUtil.java:257)
at org.glassfish.admin.rest.resources.TemplateListOfResource.createResource(TemplateListOfResource.java:134)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:125)
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:152)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:91)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:346)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:341)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:101)
at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:224)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:198)
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:946)
at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:331)
at org.glassfish.admin.rest.adapter.RestAdapter$2.service(RestAdapter.java:318)
at org.glassfish.admin.rest.adapter.RestAdapter.service(RestAdapter.java:181)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:246)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
at java.lang.Thread.run(Thread.java:744)
Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [ComponentNamed] with qualifiers [@Default] at injection point [[BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject public br.com.yweti.controller.IndexController(ComponentNamed)]
at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:403)
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:325)
at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:177)
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:208)
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:519)
at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:505)
at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:480)
at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:536)
at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:216)
... 59 more
]]

[2014-01-17T17:57:17.010-0200] [glassfish 4.0] [SEVERE] [] [javax.enterprise.system.core] [tid: _ThreadID=124 _ThreadName=admin-listener(8)] [timeMillis: 1389988637010] [levelValue: 1000] [[
  Exception while loading the app]]

[2014-01-17T17:57:17.022-0200] [glassfish 4.0] [SEVERE] [AS-WEB-GLUE-00192] [javax.enterprise.web] [tid: _ThreadID=124 _ThreadName=admin-listener(8)] [timeMillis: 1389988637022] [levelValue: 1000] [[
  Undeployment failed for context /pt_BR]]

[2014-01-17T17:57:17.057-0200] [glassfish 4.0] [SEVERE] [] [javax.enterprise.system.core] [tid: _ThreadID=124 _ThreadName=admin-listener(8)] [timeMillis: 1389988637057] [levelValue: 1000] [[
  Exception while loading the app : CDI deployment failure:WELD-001408 Unsatisfied dependencies for type [ComponentNamed] with qualifiers [@Default] at injection point [[BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject public br.com.yweti.controller.IndexController(ComponentNamed)]
org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [ComponentNamed] with qualifiers [@Default] at injection point [[BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject public br.com.yweti.controller.IndexController(ComponentNamed)]
at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:403)
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:325)
at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:177)
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:208)
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:519)
at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:505)
at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:480)
at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:536)
at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:216)
at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:328)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:493)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:527)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:523)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:356)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:522)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:546)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1423)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1500(CommandRunnerImpl.java:108)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1762)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1674)
at org.glassfish.admin.rest.utils.ResourceUtil.runCommand(ResourceUtil.java:235)
at org.glassfish.admin.rest.utils.ResourceUtil.runCommand(ResourceUtil.java:257)
at org.glassfish.admin.rest.resources.TemplateListOfResource.createResource(TemplateListOfResource.java:134)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:125)
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:152)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:91)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:346)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:341)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:101)
at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:224)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:198)
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:946)
at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:331)
at org.glassfish.admin.rest.adapter.RestAdapter$2.service(RestAdapter.java:318)
at org.glassfish.admin.rest.adapter.RestAdapter.service(RestAdapter.java:181)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:246)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
at java.lang.Thread.run(Thread.java:744)
]]

[2014-01-17T17:57:17.166-0200] [glassfish 4.0] [WARNING] [] [org.glassfish.jersey.internal.Errors] [tid: _ThreadID=124 _ThreadName=admin-listener(8)] [timeMillis: 1389988637166] [levelValue: 900] [[
  The following warnings have been detected: WARNING: Parameter 1 of type java.util.Set<java.lang.Class<?>> from public void br.com.caelum.vraptor.serialization.Serializee.setElementTypes(java.util.Set<java.lang.Class<?>>) is not resolvable to a concrete type.
WARNING: Parameter 1 of type java.lang.Class<?> from public void br.com.caelum.vraptor.serialization.Serializee.setRootClass(java.lang.Class<?>) is not resolvable to a concrete type.
WARNING: Parameter cache of type br.com.caelum.vraptor.cache.CacheStore<java.lang.Class<?>, java.lang.Class<? extends br.com.caelum.vraptor.converter.Converter<?>>> from private final br.com.caelum.vraptor.cache.CacheStore<java.lang.Class<?>, java.lang.Class<? extends br.com.caelum.vraptor.converter.Converter<?>>> br.com.caelum.vraptor.core.DefaultConverters.cache is not resolvable to a concrete type.
]]

[2014-01-17T17:57:17.179-0200] [glassfish 4.0] [INFO] [] [org.glassfish.admingui] [tid: _ThreadID=122 _ThreadName=admin-listener(6)] [timeMillis: 1389988637179] [levelValue: 800] [[
  Ocorreu uma Exceção :Erro durante a implantação: Exception while loading the app : CDI deployment failure:WELD-001408 Unsatisfied dependencies for type [ComponentNamed] with qualifiers [@Default] at injection point [[BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject public br.com.yweti.controller.IndexController(ComponentNamed)]. Consulte o server.log para obter informações detalhadas.      ]]

Otávio Garcia

unread,
Jan 17, 2014, 3:14:53 PM1/17/14
to caelum-...@googlegroups.com
Você anotou o componente com @Named, porém não anotou com nenhum escopo. Voce precisa definir um escopo.

Marcio Angelo Matté

unread,
Jan 17, 2014, 3:58:02 PM1/17/14
to caelum-...@googlegroups.com
Otávio, 

agora funcionou tudo corretamente. 


Acrescentei o @RequestScope no ComponentNamed, e também implementei Serializable.

Executei o deploy e o Weld reclamou da falta de um construtor defautl (sem argumentos). Coloquei o construtor default, pois o CDI exige conforme especificação, e então tudo funcionou de acordo, inclusive o deploy automático via netbeans. 

Acho que agora está tudo de acordo!


Obrigado pela ajuda.. e desculpe as várias mensagens neste dia!

Muito grato,

Att. Marcio









2014/1/17 Otávio Garcia <ota...@otavio.com.br>
Você anotou o componente com @Named, porém não anotou com nenhum escopo. Voce precisa definir um escopo.

--
You received this message because you are subscribed to the Google Groups "caelum-vraptor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-vrapto...@googlegroups.com.
To post to this group, send email to caelum-...@googlegroups.com.
Visit this group at http://groups.google.com/group/caelum-vraptor.
For more options, visit https://groups.google.com/groups/opt_out.

Otávio Garcia

unread,
Jan 17, 2014, 4:01:58 PM1/17/14
to caelum-...@googlegroups.com
Tem uma artimanha que dá para fazer, mas eu não curto porque há uma pequena degradação de performance, que é incluir o atributo bean-discovery-mode="all" na tab beans do arquivo beans.xml.

Isso faz com que o CDI entenda que todas as classes são CDI beans. E se você não anotar uma classe, ele entende como se ela fosse @Dependent, que é um pseudo-scope padrão.

Particularmente prefiro eu mesmo dizer ao CDI quem é bem, e qual seu escopo.

Marcio Angelo Matté

unread,
Jan 17, 2014, 4:16:12 PM1/17/14
to caelum-...@googlegroups.com
É, também não gosto destas artimanhas! rs

Realmente acho que as configurações nas IDE´s faz com que também.. as vezes, ocorram problemas dos quais enfrentei hoje.

Prefiro o Eclipse, mas Glassfish 4 na versão Kepler está quase impossível de fazer funcionar, aí acabei tendo que usar o NetBeans mesmo, mas confesso que não sou acostumado com esta ferramenta. 

Mas valeu pelas dicas, foram muito úteis!

Eu só achei estranho porque já usava este modelo de projeto com EJB 3.1 e JSF 2.1 e tudo dava certo... meus mangedbeans recebiam os EJB´s por injeção via CDI e sempre funcionou... mas como quero usar o VRaptor (pelas milhares de vantagens que não cabe falar aqui rs) necessitei deste ajuste!

Valeu pela força, agora vou pra casa, por hoje deu! 

Grande abraço Otávio!




--
You received this message because you are subscribed to the Google Groups "caelum-vraptor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-vrapto...@googlegroups.com.
To post to this group, send email to caelum-...@googlegroups.com.
Visit this group at http://groups.google.com/group/caelum-vraptor.
For more options, visit https://groups.google.com/groups/opt_out.
Reply all
Reply to author
Forward
0 new messages