tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matthew Broadhead <matthew.broadh...@nbmlaw.co.uk>
Subject Re: velocityengine in cdi applicationscoped
Date Thu, 08 Mar 2018 20:58:08 GMT
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" <matthew.broadhead@nbmlaw.co.uk>
> 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.broadhead@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.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?
>>>>
>>>>
>>>>
>>>>


Mime
View raw message