Got the same result with 'conv': Caused by: javax.enterprise.inject.AmbiguousResolutionException: There is more than one Bean with type javax.enterprise.context.ConversationQualifiers: [@javax.enterprise.inject.Default()] for injection into Field Injection Point, field name : conversation, Bean Owner : [ConversationAliaser, WebBeansType:MANAGED, Name:null, API Types:[java.lang.Object,eg.ConversationAliaser], Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any]] found beans: Conversation, WebBeansType:PRODUCERMETHOD, Name:conv, API Types:[java.lang.Object,javax.enterprise.context.Conversation], Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any,javax.inject.Named] from file:/D:/development/workspaces/openejb-el/target/test-classes/eg/ConversationWrapper.class ConversationImpl, WebBeansType:CONVERSATION, Name:javax.enterprise.context.conversation, API Types:[org.apache.webbeans.conversation.ConversationImpl,javax.enterprise.context.Conversation,java.lang.Object], Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any] from jar:file:/C:/Users/xavier/.m2/repository/org/apache/openwebbeans/openwebbeans-impl/1.6.3/openwebbeans-impl-1.6.3.jar!/org/apache/webbeans/conversation/ConversationImpl.class
From: Romain Manni-Bucau <rmannibu...@gmail.com> Sent: Wednesday, September 28, 2016 11:29 PM To: users@tomee.apache.org Cc: Mark Struberg Subject: Re: OpenEJB and EL missing @Named("conv")? Romain Manni-Bucau @rmannibucau <https://twitter.com/rmannibucau> | Blog Romain Manni-Bucau (@rmannibucau) | Twitter twitter.com The latest Tweets from Romain Manni-Bucau (@rmannibucau). ASF / Java(EE) / Angular. LinkedIn: https://t.co/dX7XMGjbBi. JavaEE Factory: https://t.co/0VnvWwbedt . Blog ... <https://blog-rmannibucau.rhcloud.com> | Old Wordpress Blog RBlog: the RManniBucau v2 Blog blog-rmannibucau.rhcloud.com RBlog: Romain Manni-Bucau Blog about Java, JavaEE, TomEE, Angular, Open Source, Code and geeky topics... <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> | [old blog] new RManniBucau().blog() rmannibucau.wordpress.com New blog on: https://blog-rmannibucau.rhcloud.com/ LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber <http://www.tomitribe.com> | JavaEE Factory <https://javaeefactory-rmannibucau.rhcloud.com> 2016-09-28 23:27 GMT+02:00 Xavier Dury <kal...@hotmail.com>: > > Caused by: javax.enterprise.inject.AmbiguousResolutionException: There is > more than one Bean with type javax.enterprise.context.ConversationQualifiers: > [@javax.enterprise.inject.Default()] > for injection into Field Injection Point, field name : conversation, Bean > Owner : [ConversationAliaser, WebBeansType:MANAGED, Name:null, API > Types:[eg.ConversationAliaser,java.lang.Object], > Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any]] > found beans: > Conversation, WebBeansType:PRODUCERMETHOD, Name:conversation, API > Types:[javax.enterprise.context.Conversation,java.lang.Object], > Qualifiers:[javax.enterprise.inject.Default,javax. > enterprise.inject.Any,javax.inject.Named] from file:/D:/development/ > workspaces/openejb-el/target/test-classes/eg/ConversationWrapper.class > ConversationImpl, WebBeansType:CONVERSATION, > Name:javax.enterprise.context.conversation, > API Types:[org.apache.webbeans.conversation.ConversationImpl, > javax.enterprise.context.Conversation,java.lang.Object], > Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any] > from jar:file:/C:/Users/xavier/.m2/repository/org/apache/ > openwebbeans/openwebbeans-impl/1.6.3/openwebbeans-impl- > 1.6.3.jar!/org/apache/webbeans/conversation/ConversationImpl.class > > > > > > > > From: Mark Struberg <strub...@yahoo.de.INVALID> > Sent: Wednesday, September 28, 2016 11:20 PM > To: users@tomee.apache.org > Subject: Re: OpenEJB and EL > > +1 > > means > > @RequestScoped > > public class ConversationWrapper { > private @Inject Conversation conv; > > @Produces > @Dependent > @Named("conv") > > public Conversation getConv() { > return conv; > } > } > > > > > On Wednesday, 28 September 2016, 23:10, Romain Manni-Bucau < > rmannibu...@gmail.com> wrote: > > > > > > > >a producer allows to get a shorter/more elegant naming like #{conv.id} > if you @Produces @Named("conv") ;) > > > > > > > >Romain Manni-Bucau > >@rmannibucau | Blog | Old Wordpress Blog | Github | LinkedIn | > Tomitriber | JavaEE Factory > > > >2016-09-28 23:01 GMT+02:00 Mark Struberg <strub...@yahoo.de.invalid>: > > > >Oh boy, sorry for you. You did hit a blank spot in the CDI spec. > >> > >>Problem is that the EE umbrella spec, the EL spec and the CDI spec > contradict each other. > >> > >>The Weld guys solved this by introducing a Javax class. But that takes > away the whole javax.* tree for the EL. That's just not good as it > contradicts the EL spec. > >> > >>Could you please try the following > >> > >>@RequestScoped > >>@Named("conversation") > >>public class ConversationWrapper { > >> private @Inject Conversation conv; > >> > >> public Conversation get() { > >> return conv; > >> } > >>} > >> > >>And in the EL just use #{conversation.get.id} > >> > >>LieGrue, > >>strub > >> > >> > >> > >> > >> > >>> On Wednesday, 28 September 2016, 22:12, Xavier Dury < > kal...@hotmail.com> wrote: > >>> > I really don't understand how something like <f:param > >>> name="cid" > >>> value="#{javax.enterprise. context.conversation.id}"/> actually > >>> works... something must be made to make the EL processor accept that > invalid > >>> bean name. > >>> > >>> Making a producer which @Produces @Named Conversation conflicts with > the > >>> built-in bean from OWB (with WebBeanType.CONVERSATION)... > >>> > >>> ... so, I have done the following for my tests but I feel a bit > ashamed because > >>> I can't imagine there is no better solution than this ;-) > >>> > >>> public class ConversationAliaser { > >>> public class Javax { > >>> public Enterprise getEnterprise() {return new Enterprise();} > >>> > >>> } > >>> public class Enterprise { > >>> public Context getContext() {return new Context();} > >>> } > >>> public class Context { > >>> public Conversation getConversation() {return conversation;} > >>> > >>> } > >>> @Inject > >>> private Conversation conversation; > >>> @Produces @ApplicationScoped @Named("javax") > >>> public Javax javax() {return new Javax();} > >>> } > >>> > >>> But that works! > >>> > >>> Xavier > >>> > >>> > >>> > >>> From: Xavier Dury <kal...@hotmail.com> > >>> Sent: Wednesday, September 28, 2016 8:42 PM > >>> To: users@tomee.apache.org > >>> Subject: Re: OpenEJB and EL > >>> > >>> Hmmm... I guess I'll have to @Produces @Named the conversation if I > want to > >>> use it in ELs. I don't know if something like > >>> #{applicationScope['javax. enterprise.context. > conversation'].transient} > >>> would work? > >>> > >>> I remember back in my JSP days that, sometimes, I had to use something > like > >>> ${requestScope['javax.servlet. forward.request_uri']} instead of > >>> plain ${javax.servlet.forward. request_uri}. > >>> > >>> Xavier > >>> > >>> > >>> From: Romain Manni-Bucau <rmannibu...@gmail.com> > >>> Sent: Wednesday, September 28, 2016 6:54 PM > >>> To: users@tomee.apache.org > >>> Subject: Re: OpenEJB and EL > >>> > >>> hmm, wonder if it is linked to the value you try to evaluate (which > doesn't > >>> respect EL spec even if in CDI spec - don't ask please ;)).. See > >>> https://issues.jboss.org/ browse/CDITCK-462 / > > > System Dashboard - JBoss Issue Tracker > issues.jboss.org > Atlassian JIRA Project Management Software (v6.4.11#64026-sha1:78f6ec4) > About JIRA; Report a problem; Powered by a free Atlassian JIRA open source > license for Red Hat ... > >>> http://lists.jboss.org/ pipermail/cdi-dev/2015- January/006009.html > > > lists.jboss.org Mailing Lists > lists.jboss.org > lists.jboss.org Mailing Lists: Welcome! Below is a listing of all the > public mailing lists on lists.jboss.org. Click on a list name to get more > information ... > >>> > >>> > >>> > >>> > >>> Romain Manni-Bucau > >>> @rmannibucau <https://twitter.com/ rmannibucau> | Blog > >>> > >>> > >>> > >>> Romain Manni-Bucau (@rmannibucau) | Twitter > >>> twitter.com > >>> The latest Tweets from Romain Manni-Bucau (@rmannibucau). ASF / > Java(EE) / > >>> Angular. LinkedIn: https://t.co/dX7XMGjbBi. JavaEE Factory: > >>> https://t.co/0VnvWwbedt . Blog ... > >>> <https://blog-rmannibucau. rhcloud.com> | Old Wordpress Blog > >>> <http://rmannibucau.wordpress. com> | Github > >>> <https://github.com/ rmannibucau> | > >>> LinkedIn <https://www.linkedin.com/in/ rmannibucau> | Tomitriber > >>> <http://www.tomitribe.com> | JavaEE Factory > >>> <https://javaeefactory- rmannibucau.rhcloud.com> > >>> > >>> 2016-09-28 18:17 GMT+02:00 Xavier Dury <kal...@hotmail.com>: > >>> > >>>> Hi Romain, > >>>> > >>>> I tried with org.apache.tomcat:tomcat- jasper-el:8.5.5 but it does > not > >>>> parse my expression until I change ".transient" by > >>> ".isTransient()" and > >>>> then it gives the same error: javax.el. PropertyNotFoundException: > >>>> ELResolver cannot handle a null base Object with identifier > >>> 'javax'. > >>>> > >>>> Does the EL context need something else than adding the > >>>> BeanManager.getELResolver() to be able to resolve some implicit > objects? I > >>>> don't understand why it works with ri-1.0. > >>>> > >>>> Xavier > >>>> > >>>> > >>>> From: Romain Manni-Bucau <rmannibu...@gmail.com> > >>>> Sent: Wednesday, September 28, 2016 4:02 PM > >>>> To: users@tomee.apache.org > >>>> Subject: Re: OpenEJB and EL > >>>> > >>>> Hi Xavier > >>>> > >>>> On the phone so hard to give you a link bit try using tomcat el impl > of > >>>> tomcat 8.5 > >>>> > >>>> Le 28 sept. 2016 15:29, "Xavier Dury" <kal...@hotmail.com> > >>> a écrit : > >>>> > >>>> > Hi, > >>>> > > >>>> > I am using OpenEJB for my tests and need support for EL > expressions in > >>> my > >>>> > own code. > >>>> > > >>>> > By default, if I do something like this (pay attention to the > >>>> expression): > >>>> > > >>>> > ExpressionFactory factory = beanManager. wrapExpressionFactory( > >>>> > ExpressionFactory.newInstance( )); > >>>> > StandardELContext elContext = new StandardELContext(factory); > >>>> > elContext.addELResolver( beanManager.getELResolver()); > >>>> > ValueExpression expression = factory.createValueExpression( > elContext, > >>>> > "#{javax.enterprise.context. conversation.transient}", > >>> Boolean.class); > >>>> > expression.getValue(elContext) ; > >>>> > > >>>> > and only add org.apache.tomee:openejb-core: 7.0.1 to my project > then I > >>>> get > >>>> > javax.el.ELException: Unable to find ExpressionFactory of type: > >>>> > org.apache.el. ExpressionFactoryImpl > >>>> > > >>>> > if I add org.glassfish:javax.el:3.0.0 then I get javax.el. > >>>> PropertyNotFoundException: > >>>> > ELResolver cannot handle a null base Object with identifier > >>> 'javax' > >>>> > > >>>> > if I switch the EL library to com.sun.el:el-ri:1.0 (+ > >>> META-INF/javax.el. > >>>> ExpressionFactory > >>>> > < com.sun.el. ExpressionFactoryImpl) then my expression can be > >>> evaluated > >>>> > but I can't use any new feature of 3.0 (like lambdas) > >>>> > > >>>> > So, either my dependencies are wrong or I am not correctly > >>> initializing > >>>> my > >>>> > factory. > >>>> > > >>>> > Does anybody have an idea? > >>>> > > >>>> > Thanks, > >>>> > > >>>> > Xavier > >>>> > >>>> > >>> > >> > > > > > > > >