Great, thanks Mark. I did download TomEE, and looking at examples
(referenced on same page as TomEE downloads) and I'm looking at this guide
below to ensure I am injecting beans correctly.

http://docs.jboss.org/weld/reference/1.0.0/en-US/html/injection.html


On Sat, Nov 17, 2012 at 6:50 AM, Mark Struberg <strub...@yahoo.de> wrote:

> If you have troubles starting tomee then don't hesitate to ping us via IRC
> on irc.freenode.net in channel #openejb (tomee s hosted there).
>
> LieGrue,
> strub
>
>
>
> >________________________________
> > From: "Howard W. Smith, Jr." <smithh032...@gmail.com>
> >To: MyFaces Discussion <users@myfaces.apache.org>; Mark Struberg <
> strub...@yahoo.de>
> >Sent: Saturday, November 17, 2012 12:06 PM
> >Subject: Re: MyFaces 2.1.9 / Glassfish 3.1.2.2: Migrating to CDI Managed
> Beans
> >
> >
> >Mark,
> >
> >
> >Thank you for the response.
> >
> >
> >1. Yes, I did add an 'empty' beans.xml to WEB-INF as advised by many
> places on the internet, and the app starts up successfully. I did 'not'
> have beans.xml added to META-INF, since all of my code is in the web app (I
> created no JARs of my own). I just added beans.xml to META-INF (while
> beans.xhtml already exists in WEB-INF), attempted to start glassfish, and I
> get the following error:
> >
> >
> >INFO: WELD-000900 1.1.8 (Final)
> >SEVERE: Exception while invoking class org.glassfish.weld.WeldDeployer
> load method
> >java.lang.NullPointerException
> >at
> org.glassfish.weld.BeanDeploymentArchiveImpl.handleEntry(BeanDeploymentArchiveImpl.java:504)
> >at
> org.glassfish.weld.BeanDeploymentArchiveImpl.collectJarInfo(BeanDeploymentArchiveImpl.java:482)
> >at
> org.glassfish.weld.BeanDeploymentArchiveImpl.populate(BeanDeploymentArchiveImpl.java:422)
> >
> >
> >I'm sure the error above means that my web app does not need 'empty'
> beans.xml in META-INF (and WEB-INF), so I will remove beans.xml from
> META-INF.
> >
> >
> >2. Yes, all CDI beans (accessed via EL) have @Named annotation, and I am
> using @Inject along with Qualifiers (for classes that extend ancestor
> classes). Below are notes from what I did/completed yesterday for this
> migration:
> >
> >
> >Migrate from JSF Managed Beans to CDI Managed Beans
> >
> >
> >Replace
> >javax.faces.bean.ManagedBean
> >with
> >javax.inject.Named
> >
> >
> >replace
> >javax.faces.bean.ManagedProperty
> >with
> >javax.inject.Inject
> >
> >
> >replace
> >javax.faces.bean.SessionScoped
> >with
> >javax.enterprise.context.SessionScoped
> >
> >
> >replace
> >javax.faces.bean.ApplicationScoped
> >with
> >javax.enterprise.context.ApplicationScoped
> >
> >
> >replace
> >@ManagedBean(name =
> >with
> >@Named(
> >
> >
> >replace
> >@ManagedProperty("#{.*}")
> >with
> >@Inject
> >
> >
> >Migrated applicationScopeBean from JSF ApplicationScoped managed bean to
> EJB @Singleton with @Startup (please disregard this, since the last thing I
> did with this was to migrate it to CDI applicationscoped instead of EJB
> singleton and startup)
> >
> >
> >Added CDI Qualifier called @Descendant for all descendants of Address,
> EmailAddress, Phone, and PointOfContact controllers
> >
> >
> >Replace
> >FacesContext.getCurrentInstance().getExternalContext().getSessionMap()
> >
> >
> >with @Inject and private instance variable
> >
> >
> >
> >
> >3. Honestly, I was hoping not to have to migrate to another container
> like Tomcat or TomEE, since I only have little/limited experience with
> those containers (as I attempted to migrate to Tomcat 7.0.32, 1 or 2 weeks
> ago, but too much was involved and I couldn't even get the web app to
> start). I am open to trying TomEE, hopefully, as a last-and-final option. :)
> >
> >
> >
> >On Sat, Nov 17, 2012 at 5:04 AM, Mark Struberg <strub...@yahoo.de> wrote:
> >
> >Hi Howard!
> >>
> >>
> >>JUEL is an Expression Language implementation. It has nothing to do with
> CDI apart from CDI providing an ELResolver. JUEL is much faster than the EL
> interpreter in glassfish, so this is fine.
> >>
> >>For your beans getting recognized in EL expressions:
> >>
> >>1.) Do you have a META-INF/beans.xml in all your jars/classpaths which
> contain CDI beans? This files can be empty, they just act as marker files.
> For the webapp you might add one to WEB-INF/beans.xml.
> >>
> >>
> >>2.) Do your CDI beans you access via EL have a @Named annotation?
> >>This is needed to make them available for ELResolvers.
> >>
> >>3.) glassfish has a few nasty integration issues when it comes to
> pluggin in different container parts. Can you try your app on tomee-1.5?
> [1]. It comes with the latest MyFaces out of the box!
> >>
> >>LieGrue,
> >>strub
> >>
> >>
> >>[1] http://tomee.apache.org/downloads.html
> >>
> >>
> >>
> >>----- Original Message -----
> >>> From: "Howard W. Smith, Jr." <smithh032...@gmail.com>
> >>> To: MyFaces Discussion <users@myfaces.apache.org>
> >>> Cc:
> >>> Sent: Saturday, November 17, 2012 10:35 AM
> >>> Subject: MyFaces 2.1.9 / Glassfish 3.1.2.2: Migrating to CDI Managed
> Beans
> >>>
> >>> Web application details:
> >>> JSF 2.1, MyFaces 2.1.9, PrimeFaces 3.4.1 (or 3.5-SNAPSHOT), Glassfish
> >>> 3.1.2.2 (build 5), JUEL 2.2.5
> >>>
> >>> From server log:
> >>> INFO: WELD-000900 1.1.8 (Final)
> >>>
> >>> Yesterday, I started migrating from JSF Managed Beans to CDI Managed
> Beans.
> >>> I referred to Chapter 28 (CDI) of Oracle's Java EE 6
> >>> Tutorial<http://docs.oracle.com/javaee/6/tutorial/doc/giwhb.html>as
> >>
> >>> well as many other pages I found on the internet.
> >>>
> >>> Finally, the app starts, as I think I completed most steps necessary to
> >>> migrate to CDI managed beans, but now it seems as though my beans are
> not
> >>> accessible from facelets. As per
> >>> MYFACES-3104<https://issues.apache.org/jira/browse/MYFACES-3104>,
> >>> I am already using *JUEL 2.2.5* (that is working well with JSF Managed
> >>> Beans in production), so I already had *
> >>> org.apache.myfaces.EXPRESSION_FACTORY* set in web.xml, as well as
> >>> *org.apache.myfaces.SUPPORT_JSP_AND_FACES_EL
> >>> *to *false*, and the last thing I did was add the following to web.xml:
> >>
> >>>
> >>>     <context-param>
> >>>
> >>> <param-name>org.apache.myfaces.annotation.SCAN_PACKAGES</param-name>
> >>>         <param-value>pf,jsf.users,jsf.orders</param-value>
> >>>     </context-param>
> >>>
> >>> Which are just a 'few' of the packages that contained beans referenced
> >>> by
> >>> the initial page of the app (login.xhtml).
> >>>
> >>> My questions:
> >>>
> >>>    1. Can someone please advise me of blog/tutorials that list any/all
> >>
> >>>    steps necessary to migrate MyFaces 2.1.9 / Glassfish 3.1.2.2 web
> app from
> >>>    JSF Managed Beans to CDI?
> >>>    2. I am not using MyFaces CODI or OpenWebBeans (yet). I've seen
> >>
> >>>    OpenWebBeans recommended with MyFaces Core (2.1.7+) for performance
> >>>    reasons, and in PrimeFaces forum, I've seen MyFaces Core and
> MyFaces CODI
> >>>    used together by some people. If I should use MyFaces CODI or
> OpenWebBeans,
> >>>    please reply with blog/tutorial/instruction URLs.
> >>>
> >>> My next steps will probably be any/all of the following:
> >>>
> >>>    1. Remove JUEL 2.2.5 from the project, and see if I can
> successfully get
> >>
> >>>    my pages to render via CDI
> >>>    2. Add MyFaces CODI (need to search for a good set of instructions
> on
> >>>    how to do so)
> >>>    3. Add OpenWebBeans (same as above, need good set of instructions)
> >>
> >>>
> >>> Please confirm/advise. If you need any more details from me (for
> example,
> >>> for me to reply with my web.xml), then please let me know.
> >>>
> >>> Thanks,
> >>> Howard
> >>>
> >>
> >
> >
> >
>

Reply via email to