Re: velocityengine in cdi applicationscoped
Means the bean is vetoed, probably cause the class cannot be loaded surprisingly. Le 8 mars 2018 21:58, "Matthew Broadhead" a écrit : > i didn't add velocity in my app i was trying to use the TomEE one. i moved > the code out of the @ApplicationScoped and into a @Named and the container > started but then the @Named bean resolved to null > javax.el.PropertyNotFoundException: Target Unreachable, identifier > 'eventsBean' resolved to null > > On 08/03/2018 21:38, Romain Manni-Bucau wrote: > >> Then you can use the force-load option if you have velocity in your app or >> remove it from here to use tomee one >> >> That said tomee should only need velocity in embedded mode and not others >> so maybe a dependency leak to fix if not already. >> >> Le 8 mars 2018 19:21, "Matthew Broadhead" > > >> a écrit : >> >> btw is there some way to define VelocityEngine as a Resource in tomee.xml >>> so it doesn't have to be loaded each time? >>> >>> On 08/03/2018 19:15, Romain Manni-Bucau wrote: >>> >>> Hi If you keep the bean and remove velocity you will probably get the same error until its classloader is not correctly set and you have extensions in your webapp but it should fail at runtime. Le 8 mars 2018 18:48, "Matthew Broadhead" < matthew.broadh...@nbmlaw.co.uk a écrit : TomEE 7.0.3 (i cannot upgrade to 7.0.4) > i am trying to switch from using XSLT to using velocity templates. i > noticed that velocity was included as a lib in TomEE > > if i declare VelocityEngine inside a CDI @ApplicationScoped > try { > VelocityEngine velocityEngine = new VelocityEngine(); > velocityEngine.init(); > Template t = velocityEngine.getTemplate("ve > locity/reports/note.vm"); > VelocityContext context = new VelocityContext(); > context.put("note", note); > StringWriter writer = new StringWriter(); > t.merge(context, writer); > System.out.println(writer.toString()); > } catch (ResourceNotFoundException e1) { > e1.printStackTrace(); > } catch (ParseErrorException e1) { > e1.printStackTrace(); > } catch (MethodInvocationException e1) { > e1.printStackTrace(); > } catch (IOException e1) { > e1.printStackTrace(); > } catch (Exception e1) { > e1.printStackTrace(); > } > > then i get > 08-Mar-2018 18:47:07.931 SEVERE [localhost-startStop-1] > org.apache.openejb.cdi.OpenEJBLifecycle.startApplication CDI Beans > module > deployment failed >org.apache.webbeans.exception.WebBeansDeploymentException: > javax.enterprise.inject.UnsatisfiedResolutionException: Api type > [uk.me.kissy.file.dao.NoteDao] is not found with the qualifiers > Qualifiers: [@javax.enterprise.inject.Default()] > for injection into Field Injection Point, field name : noteDao, Bean > Owner : [FileRS, WebBeansType:MANAGED, Name:null, API > Types:[java.lang.Object,uk.me.kissy.file.rs.FileRS], > Qualifiers:[javax.enterprise.inject.Default,javax.enterprise > .inject.Any]] > at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeploye > r.java:327) > at org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(Ope > nEJBLifecycle.java:196) > at org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize > (ThreadSingletonServiceImpl.java:189) > at org.apache.openejb.cdi.CdiBuilder.build(CdiBuilder.java:41) > at org.apache.openejb.assembler.classic.Assembler.createApplica > tion(Assembler.java:914) > at org.apache.openejb.assembler.classic.Assembler.createApplica > tion(Assembler.java:718) > at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal( > TomcatWebAppBuilder.java:1298) > at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart > (TomcatWebAppBuilder.java:1124) > at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEve > nt(GlobalListenerSupport.java:133) > at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(Li > fecycleBase.java:94) > at org.apache.catalina.core.StandardContext.startInternal(Stand > ardContext.java:5087) > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase. > java:150) > at org.apache.catalina.core.ContainerBase$StartChild.call(Conta > inerBase.java:1419) > at org.apache.catalina.core.ContainerBase$StartChild.call(Conta > inerBase.java:1409) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool > Executor.java:1142) > at java.util.concurrent.ThreadPoolExecu
Re: velocityengine in cdi applicationscoped
i didn't add velocity in my app i was trying to use the TomEE one. i moved the code out of the @ApplicationScoped and into a @Named and the container started but then the @Named bean resolved to null javax.el.PropertyNotFoundException: Target Unreachable, identifier 'eventsBean' resolved to null On 08/03/2018 21:38, Romain Manni-Bucau wrote: Then you can use the force-load option if you have velocity in your app or remove it from here to use tomee one That said tomee should only need velocity in embedded mode and not others so maybe a dependency leak to fix if not already. Le 8 mars 2018 19:21, "Matthew Broadhead" a écrit : btw is there some way to define VelocityEngine as a Resource in tomee.xml so it doesn't have to be loaded each time? On 08/03/2018 19:15, Romain Manni-Bucau wrote: Hi If you keep the bean and remove velocity you will probably get the same error until its classloader is not correctly set and you have extensions in your webapp but it should fail at runtime. Le 8 mars 2018 18:48, "Matthew Broadhead" i am trying to switch from using XSLT to using velocity templates. i noticed that velocity was included as a lib in TomEE if i declare VelocityEngine inside a CDI @ApplicationScoped try { VelocityEngine velocityEngine = new VelocityEngine(); velocityEngine.init(); Template t = velocityEngine.getTemplate("ve locity/reports/note.vm"); VelocityContext context = new VelocityContext(); context.put("note", note); StringWriter writer = new StringWriter(); t.merge(context, writer); System.out.println(writer.toString()); } catch (ResourceNotFoundException e1) { e1.printStackTrace(); } catch (ParseErrorException e1) { e1.printStackTrace(); } catch (MethodInvocationException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } catch (Exception e1) { e1.printStackTrace(); } then i get 08-Mar-2018 18:47:07.931 SEVERE [localhost-startStop-1] org.apache.openejb.cdi.OpenEJBLifecycle.startApplication CDI Beans module deployment failed org.apache.webbeans.exception.WebBeansDeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Api type [uk.me.kissy.file.dao.NoteDao] is not found with the qualifiers Qualifiers: [@javax.enterprise.inject.Default()] for injection into Field Injection Point, field name : noteDao, Bean Owner : [FileRS, WebBeansType:MANAGED, Name:null, API Types:[java.lang.Object,uk.me.kissy.file.rs.FileRS], Qualifiers:[javax.enterprise.inject.Default,javax.enterprise .inject.Any]] at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeploye r.java:327) at org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(Ope nEJBLifecycle.java:196) at org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize (ThreadSingletonServiceImpl.java:189) at org.apache.openejb.cdi.CdiBuilder.build(CdiBuilder.java:41) at org.apache.openejb.assembler.classic.Assembler.createApplica tion(Assembler.java:914) at org.apache.openejb.assembler.classic.Assembler.createApplica tion(Assembler.java:718) at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal( TomcatWebAppBuilder.java:1298) at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart (TomcatWebAppBuilder.java:1124) at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEve nt(GlobalListenerSupport.java:133) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(Li fecycleBase.java:94) at org.apache.catalina.core.StandardContext.startInternal(Stand ardContext.java:5087) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase. java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(Conta inerBase.java:1419) at org.apache.catalina.core.ContainerBase$StartChild.call(Conta inerBase.java:1409) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool Executor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo lExecutor.java:617) at java.lang.Thread.run(Thread.java:748) Caused by: javax.enterprise.inject.UnsatisfiedResolutionException: Api type [uk.me.kissy.file.dao.NoteDao] is not found with the qualifiers Qualifiers: [@javax.enterprise.inject.Default()] for injection into Field Injection Point, field name : noteDao, Bean Owner : [FileRS, WebBeansType:MANAGED, Name:null, API Types:[java.lang.Object,uk.me.kissy.file.rs.FileRS], Qualifiers:[javax.enterprise.inject.Default,javax.enterprise .inject.Any]] at org.apache.webbeans.util.InjectionExceptionUtil.throwUnsatis fiedResolutionException(InjectionExceptionUtil.java:65) at org.apache.webbeans.container.InjectionResolver.checkInjecti onPoint(InjectionResolver.java:2
Re: velocityengine in cdi applicationscoped
Then you can use the force-load option if you have velocity in your app or remove it from here to use tomee one That said tomee should only need velocity in embedded mode and not others so maybe a dependency leak to fix if not already. Le 8 mars 2018 19:21, "Matthew Broadhead" a écrit : > btw is there some way to define VelocityEngine as a Resource in tomee.xml > so it doesn't have to be loaded each time? > > On 08/03/2018 19:15, Romain Manni-Bucau wrote: > >> Hi >> >> If you keep the bean and remove velocity you will probably get the same >> error until its classloader is not correctly set and you have extensions >> in >> your webapp but it should fail at runtime. >> >> >> Le 8 mars 2018 18:48, "Matthew Broadhead" > > >> a écrit : >> >> TomEE 7.0.3 (i cannot upgrade to 7.0.4) >>> >>> i am trying to switch from using XSLT to using velocity templates. i >>> noticed that velocity was included as a lib in TomEE >>> >>> if i declare VelocityEngine inside a CDI @ApplicationScoped >>> try { >>> VelocityEngine velocityEngine = new VelocityEngine(); >>> velocityEngine.init(); >>> Template t = velocityEngine.getTemplate("ve >>> locity/reports/note.vm"); >>> VelocityContext context = new VelocityContext(); >>> context.put("note", note); >>> StringWriter writer = new StringWriter(); >>> t.merge(context, writer); >>> System.out.println(writer.toString()); >>> } catch (ResourceNotFoundException e1) { >>> e1.printStackTrace(); >>> } catch (ParseErrorException e1) { >>> e1.printStackTrace(); >>> } catch (MethodInvocationException e1) { >>> e1.printStackTrace(); >>> } catch (IOException e1) { >>> e1.printStackTrace(); >>> } catch (Exception e1) { >>> e1.printStackTrace(); >>> } >>> >>> then i get >>> 08-Mar-2018 18:47:07.931 SEVERE [localhost-startStop-1] >>> org.apache.openejb.cdi.OpenEJBLifecycle.startApplication CDI Beans >>> module >>> deployment failed >>> org.apache.webbeans.exception.WebBeansDeploymentException: >>> javax.enterprise.inject.UnsatisfiedResolutionException: Api type >>> [uk.me.kissy.file.dao.NoteDao] is not found with the qualifiers >>> Qualifiers: [@javax.enterprise.inject.Default()] >>> for injection into Field Injection Point, field name : noteDao, Bean >>> Owner : [FileRS, WebBeansType:MANAGED, Name:null, API >>> Types:[java.lang.Object,uk.me.kissy.file.rs.FileRS], >>> Qualifiers:[javax.enterprise.inject.Default,javax.enterprise >>> .inject.Any]] >>> at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeploye >>> r.java:327) >>> at org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(Ope >>> nEJBLifecycle.java:196) >>> at org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize >>> (ThreadSingletonServiceImpl.java:189) >>> at org.apache.openejb.cdi.CdiBuilder.build(CdiBuilder.java:41) >>> at org.apache.openejb.assembler.classic.Assembler.createApplica >>> tion(Assembler.java:914) >>> at org.apache.openejb.assembler.classic.Assembler.createApplica >>> tion(Assembler.java:718) >>> at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal( >>> TomcatWebAppBuilder.java:1298) >>> at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart >>> (TomcatWebAppBuilder.java:1124) >>> at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEve >>> nt(GlobalListenerSupport.java:133) >>> at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(Li >>> fecycleBase.java:94) >>> at org.apache.catalina.core.StandardContext.startInternal(Stand >>> ardContext.java:5087) >>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase. >>> java:150) >>> at org.apache.catalina.core.ContainerBase$StartChild.call(Conta >>> inerBase.java:1419) >>> at org.apache.catalina.core.ContainerBase$StartChild.call(Conta >>> inerBase.java:1409) >>> at java.util.concurrent.FutureTask.run(FutureTask.java:266) >>> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool >>> Executor.java:1142) >>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo >>> lExecutor.java:617) >>> at java.lang.Thread.run(Thread.java:748) >>> Caused by: javax.enterprise.inject.UnsatisfiedResolutionException: Api >>> type [uk.me.kissy.file.dao.NoteDao] is not found with the qualifiers >>> Qualifiers: [@javax.enterprise.inject.Default()] >>> for injection into Field Injection Point, field name : noteDao, Bean >>> Owner : [FileRS, WebBeansType:MANAGED, Name:null, API >>> Types:[java.lang.Object,uk.me.kissy.file.rs.FileRS], >>> Qualifiers:[javax.enterprise.inject.Default,javax.enterprise >>> .inject.Any]] >>> at org.apache.webbeans.util.InjectionExceptionUtil.throwUnsatis >>> fiedResolutionException(InjectionExceptionUtil.java:65) >>> at org.apache.webbeans.container.InjectionResolver.check
Re: velocityengine in cdi applicationscoped
btw is there some way to define VelocityEngine as a Resource in tomee.xml so it doesn't have to be loaded each time? On 08/03/2018 19:15, Romain Manni-Bucau wrote: Hi If you keep the bean and remove velocity you will probably get the same error until its classloader is not correctly set and you have extensions in your webapp but it should fail at runtime. Le 8 mars 2018 18:48, "Matthew Broadhead" a écrit : TomEE 7.0.3 (i cannot upgrade to 7.0.4) i am trying to switch from using XSLT to using velocity templates. i noticed that velocity was included as a lib in TomEE if i declare VelocityEngine inside a CDI @ApplicationScoped try { VelocityEngine velocityEngine = new VelocityEngine(); velocityEngine.init(); Template t = velocityEngine.getTemplate("ve locity/reports/note.vm"); VelocityContext context = new VelocityContext(); context.put("note", note); StringWriter writer = new StringWriter(); t.merge(context, writer); System.out.println(writer.toString()); } catch (ResourceNotFoundException e1) { e1.printStackTrace(); } catch (ParseErrorException e1) { e1.printStackTrace(); } catch (MethodInvocationException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } catch (Exception e1) { e1.printStackTrace(); } then i get 08-Mar-2018 18:47:07.931 SEVERE [localhost-startStop-1] org.apache.openejb.cdi.OpenEJBLifecycle.startApplication CDI Beans module deployment failed org.apache.webbeans.exception.WebBeansDeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Api type [uk.me.kissy.file.dao.NoteDao] is not found with the qualifiers Qualifiers: [@javax.enterprise.inject.Default()] for injection into Field Injection Point, field name : noteDao, Bean Owner : [FileRS, WebBeansType:MANAGED, Name:null, API Types:[java.lang.Object,uk.me.kissy.file.rs.FileRS], Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any]] at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeploye r.java:327) at org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(Ope nEJBLifecycle.java:196) at org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize (ThreadSingletonServiceImpl.java:189) at org.apache.openejb.cdi.CdiBuilder.build(CdiBuilder.java:41) at org.apache.openejb.assembler.classic.Assembler.createApplica tion(Assembler.java:914) at org.apache.openejb.assembler.classic.Assembler.createApplica tion(Assembler.java:718) at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal( TomcatWebAppBuilder.java:1298) at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart (TomcatWebAppBuilder.java:1124) at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEve nt(GlobalListenerSupport.java:133) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(Li fecycleBase.java:94) at org.apache.catalina.core.StandardContext.startInternal(Stand ardContext.java:5087) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase. java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(Conta inerBase.java:1419) at org.apache.catalina.core.ContainerBase$StartChild.call(Conta inerBase.java:1409) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool Executor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo lExecutor.java:617) at java.lang.Thread.run(Thread.java:748) Caused by: javax.enterprise.inject.UnsatisfiedResolutionException: Api type [uk.me.kissy.file.dao.NoteDao] is not found with the qualifiers Qualifiers: [@javax.enterprise.inject.Default()] for injection into Field Injection Point, field name : noteDao, Bean Owner : [FileRS, WebBeansType:MANAGED, Name:null, API Types:[java.lang.Object,uk.me.kissy.file.rs.FileRS], Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any]] at org.apache.webbeans.util.InjectionExceptionUtil.throwUnsatis fiedResolutionException(InjectionExceptionUtil.java:65) at org.apache.webbeans.container.InjectionResolver.checkInjecti onPoint(InjectionResolver.java:234) at org.apache.webbeans.container.BeanManagerImpl.validate(BeanM anagerImpl.java:1209) at org.apache.webbeans.util.WebBeansUtil.validate(WebBeansUtil. java:1709) at org.apache.webbeans.config.BeansDeployer.validate(BeansDeplo yer.java:913) at org.apache.webbeans.config.BeansDeployer.validateInjectionPo ints(BeansDeployer.java:824) at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeploye r.java:307) ... 17 more is VelocityEngine not allowed in there? or is there somewhere else i can be defining it for general use inside the container?
Re: velocityengine in cdi applicationscoped
if i remove velocity from NoteDao then TomEE starts fine On 08/03/2018 19:15, Romain Manni-Bucau wrote: Hi If you keep the bean and remove velocity you will probably get the same error until its classloader is not correctly set and you have extensions in your webapp but it should fail at runtime. Le 8 mars 2018 18:48, "Matthew Broadhead" a écrit : TomEE 7.0.3 (i cannot upgrade to 7.0.4) i am trying to switch from using XSLT to using velocity templates. i noticed that velocity was included as a lib in TomEE if i declare VelocityEngine inside a CDI @ApplicationScoped try { VelocityEngine velocityEngine = new VelocityEngine(); velocityEngine.init(); Template t = velocityEngine.getTemplate("ve locity/reports/note.vm"); VelocityContext context = new VelocityContext(); context.put("note", note); StringWriter writer = new StringWriter(); t.merge(context, writer); System.out.println(writer.toString()); } catch (ResourceNotFoundException e1) { e1.printStackTrace(); } catch (ParseErrorException e1) { e1.printStackTrace(); } catch (MethodInvocationException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } catch (Exception e1) { e1.printStackTrace(); } then i get 08-Mar-2018 18:47:07.931 SEVERE [localhost-startStop-1] org.apache.openejb.cdi.OpenEJBLifecycle.startApplication CDI Beans module deployment failed org.apache.webbeans.exception.WebBeansDeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Api type [uk.me.kissy.file.dao.NoteDao] is not found with the qualifiers Qualifiers: [@javax.enterprise.inject.Default()] for injection into Field Injection Point, field name : noteDao, Bean Owner : [FileRS, WebBeansType:MANAGED, Name:null, API Types:[java.lang.Object,uk.me.kissy.file.rs.FileRS], Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any]] at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeploye r.java:327) at org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(Ope nEJBLifecycle.java:196) at org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize (ThreadSingletonServiceImpl.java:189) at org.apache.openejb.cdi.CdiBuilder.build(CdiBuilder.java:41) at org.apache.openejb.assembler.classic.Assembler.createApplica tion(Assembler.java:914) at org.apache.openejb.assembler.classic.Assembler.createApplica tion(Assembler.java:718) at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal( TomcatWebAppBuilder.java:1298) at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart (TomcatWebAppBuilder.java:1124) at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEve nt(GlobalListenerSupport.java:133) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(Li fecycleBase.java:94) at org.apache.catalina.core.StandardContext.startInternal(Stand ardContext.java:5087) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase. java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(Conta inerBase.java:1419) at org.apache.catalina.core.ContainerBase$StartChild.call(Conta inerBase.java:1409) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool Executor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo lExecutor.java:617) at java.lang.Thread.run(Thread.java:748) Caused by: javax.enterprise.inject.UnsatisfiedResolutionException: Api type [uk.me.kissy.file.dao.NoteDao] is not found with the qualifiers Qualifiers: [@javax.enterprise.inject.Default()] for injection into Field Injection Point, field name : noteDao, Bean Owner : [FileRS, WebBeansType:MANAGED, Name:null, API Types:[java.lang.Object,uk.me.kissy.file.rs.FileRS], Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any]] at org.apache.webbeans.util.InjectionExceptionUtil.throwUnsatis fiedResolutionException(InjectionExceptionUtil.java:65) at org.apache.webbeans.container.InjectionResolver.checkInjecti onPoint(InjectionResolver.java:234) at org.apache.webbeans.container.BeanManagerImpl.validate(BeanM anagerImpl.java:1209) at org.apache.webbeans.util.WebBeansUtil.validate(WebBeansUtil. java:1709) at org.apache.webbeans.config.BeansDeployer.validate(BeansDeplo yer.java:913) at org.apache.webbeans.config.BeansDeployer.validateInjectionPo ints(BeansDeployer.java:824) at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeploye r.java:307) ... 17 more is VelocityEngine not allowed in there? or is there somewhere else i can be defining it for general use inside the container?
Re: velocityengine in cdi applicationscoped
Hi If you keep the bean and remove velocity you will probably get the same error until its classloader is not correctly set and you have extensions in your webapp but it should fail at runtime. Le 8 mars 2018 18:48, "Matthew Broadhead" a écrit : > TomEE 7.0.3 (i cannot upgrade to 7.0.4) > > i am trying to switch from using XSLT to using velocity templates. i > noticed that velocity was included as a lib in TomEE > > if i declare VelocityEngine inside a CDI @ApplicationScoped > try { > VelocityEngine velocityEngine = new VelocityEngine(); > velocityEngine.init(); > Template t = velocityEngine.getTemplate("ve > locity/reports/note.vm"); > VelocityContext context = new VelocityContext(); > context.put("note", note); > StringWriter writer = new StringWriter(); > t.merge(context, writer); > System.out.println(writer.toString()); > } catch (ResourceNotFoundException e1) { > e1.printStackTrace(); > } catch (ParseErrorException e1) { > e1.printStackTrace(); > } catch (MethodInvocationException e1) { > e1.printStackTrace(); > } catch (IOException e1) { > e1.printStackTrace(); > } catch (Exception e1) { > e1.printStackTrace(); > } > > then i get > 08-Mar-2018 18:47:07.931 SEVERE [localhost-startStop-1] > org.apache.openejb.cdi.OpenEJBLifecycle.startApplication CDI Beans module > deployment failed > org.apache.webbeans.exception.WebBeansDeploymentException: > javax.enterprise.inject.UnsatisfiedResolutionException: Api type > [uk.me.kissy.file.dao.NoteDao] is not found with the qualifiers > Qualifiers: [@javax.enterprise.inject.Default()] > for injection into Field Injection Point, field name : noteDao, Bean > Owner : [FileRS, WebBeansType:MANAGED, Name:null, API > Types:[java.lang.Object,uk.me.kissy.file.rs.FileRS], > Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any]] > at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeploye > r.java:327) > at org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(Ope > nEJBLifecycle.java:196) > at org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize > (ThreadSingletonServiceImpl.java:189) > at org.apache.openejb.cdi.CdiBuilder.build(CdiBuilder.java:41) > at org.apache.openejb.assembler.classic.Assembler.createApplica > tion(Assembler.java:914) > at org.apache.openejb.assembler.classic.Assembler.createApplica > tion(Assembler.java:718) > at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal( > TomcatWebAppBuilder.java:1298) > at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart > (TomcatWebAppBuilder.java:1124) > at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEve > nt(GlobalListenerSupport.java:133) > at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(Li > fecycleBase.java:94) > at org.apache.catalina.core.StandardContext.startInternal(Stand > ardContext.java:5087) > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase. > java:150) > at org.apache.catalina.core.ContainerBase$StartChild.call(Conta > inerBase.java:1419) > at org.apache.catalina.core.ContainerBase$StartChild.call(Conta > inerBase.java:1409) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool > Executor.java:1142) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo > lExecutor.java:617) > at java.lang.Thread.run(Thread.java:748) > Caused by: javax.enterprise.inject.UnsatisfiedResolutionException: Api > type [uk.me.kissy.file.dao.NoteDao] is not found with the qualifiers > Qualifiers: [@javax.enterprise.inject.Default()] > for injection into Field Injection Point, field name : noteDao, Bean > Owner : [FileRS, WebBeansType:MANAGED, Name:null, API > Types:[java.lang.Object,uk.me.kissy.file.rs.FileRS], > Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any]] > at org.apache.webbeans.util.InjectionExceptionUtil.throwUnsatis > fiedResolutionException(InjectionExceptionUtil.java:65) > at org.apache.webbeans.container.InjectionResolver.checkInjecti > onPoint(InjectionResolver.java:234) > at org.apache.webbeans.container.BeanManagerImpl.validate(BeanM > anagerImpl.java:1209) > at org.apache.webbeans.util.WebBeansUtil.validate(WebBeansUtil. > java:1709) > at org.apache.webbeans.config.BeansDeployer.validate(BeansDeplo > yer.java:913) > at org.apache.webbeans.config.BeansDeployer.validateInjectionPo > ints(BeansDeployer.java:824) > at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeploye > r.java:307) > ... 17 more > > is VelocityEngine not allowed in there? or is there somewhere else i can > be defining it for general use inside the container? > > >
velocityengine in cdi applicationscoped
TomEE 7.0.3 (i cannot upgrade to 7.0.4) i am trying to switch from using XSLT to using velocity templates. i noticed that velocity was included as a lib in TomEE if i declare VelocityEngine inside a CDI @ApplicationScoped try { VelocityEngine velocityEngine = new VelocityEngine(); velocityEngine.init(); Template t = velocityEngine.getTemplate("velocity/reports/note.vm"); VelocityContext context = new VelocityContext(); context.put("note", note); StringWriter writer = new StringWriter(); t.merge(context, writer); System.out.println(writer.toString()); } catch (ResourceNotFoundException e1) { e1.printStackTrace(); } catch (ParseErrorException e1) { e1.printStackTrace(); } catch (MethodInvocationException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } catch (Exception e1) { e1.printStackTrace(); } then i get 08-Mar-2018 18:47:07.931 SEVERE [localhost-startStop-1] org.apache.openejb.cdi.OpenEJBLifecycle.startApplication CDI Beans module deployment failed org.apache.webbeans.exception.WebBeansDeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Api type [uk.me.kissy.file.dao.NoteDao] is not found with the qualifiers Qualifiers: [@javax.enterprise.inject.Default()] for injection into Field Injection Point, field name : noteDao, Bean Owner : [FileRS, WebBeansType:MANAGED, Name:null, API Types:[java.lang.Object,uk.me.kissy.file.rs.FileRS], Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any]] at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:327) at org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:196) at org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize(ThreadSingletonServiceImpl.java:189) at org.apache.openejb.cdi.CdiBuilder.build(CdiBuilder.java:41) at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:914) at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:718) at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1298) at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1124) at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5087) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748) Caused by: javax.enterprise.inject.UnsatisfiedResolutionException: Api type [uk.me.kissy.file.dao.NoteDao] is not found with the qualifiers Qualifiers: [@javax.enterprise.inject.Default()] for injection into Field Injection Point, field name : noteDao, Bean Owner : [FileRS, WebBeansType:MANAGED, Name:null, API Types:[java.lang.Object,uk.me.kissy.file.rs.FileRS], Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any]] at org.apache.webbeans.util.InjectionExceptionUtil.throwUnsatisfiedResolutionException(InjectionExceptionUtil.java:65) at org.apache.webbeans.container.InjectionResolver.checkInjectionPoint(InjectionResolver.java:234) at org.apache.webbeans.container.BeanManagerImpl.validate(BeanManagerImpl.java:1209) at org.apache.webbeans.util.WebBeansUtil.validate(WebBeansUtil.java:1709) at org.apache.webbeans.config.BeansDeployer.validate(BeansDeployer.java:913) at org.apache.webbeans.config.BeansDeployer.validateInjectionPoints(BeansDeployer.java:824) at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:307) ... 17 more is VelocityEngine not allowed in there? or is there somewhere else i can be defining it for general use inside the container?