You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by laredotornado <la...@gmail.com> on 2009/11/25 17:04:51 UTC

Possible to force bean to load into session at session start up?

Hi,

I'm using MyFaces 1.1.6.  I have this declaration in my faces-config.xml
file ...

  <managed-bean>
    <managed-bean-name>emailController</managed-bean-name>
    <managed-bean-class>
    	myco.util.jsf.controller.EmailController
    </managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    <managed-property>
      <property-name>mailSession</property-name>
      <property-class>java.lang.String</property-class>
      <value>java:comp/env/mail/session</value>
    </managed-property>
   </managed-bean>  

What I am noticing, though, is that the bean is not actually placed into the
session until I visit a JSF page that references the bean, like 

<h:inputHidden value="#{emailController.field1}" />

I'm in a situation where I need to access the bean in a controller before I
visit a page that references it.  Does anyone know how to tell MyFaces/JSF
to load the bean when the session starts?  

Thanks for all your help, - Dave

-- 
View this message in context: http://old.nabble.com/Possible-to-force-bean-to-load-into-session-at-session-start-up--tp26515381p26515381.html
Sent from the MyFaces - Users mailing list archive at Nabble.com.


Re: AW: Possible to force bean to load into session at session start up?

Posted by Anton Gavazuk <an...@gmail.com>.
Dummy, but works as requested

Make a dependency in a faces config between a bean which appears on the
first page and session bean.


2009/11/25 laredotornado <la...@gmail.com>

>
> There may certainly be a design flaw and I definitely want to fix that at
> some point.  But for now, regarding your comment ...
>
> > I guess it is possible
>
> How?
>
> Thanks, - Dave
>
>
>
> Rene Guenther wrote:
> >
> > Hi Dave,
> >
> > I guess it is possible. I just wanted to point out though that on a first
> > glance it looks like a design flaw. In my opinion a managed bean should
> > always be related to a JSF page. If it is not related, it should not be
> > declared as a bean of the presentation layer.
> > Eg. a bean responsible for email sending and receiving is a bean that
> > could
> > be used without a presentation layer (eg. in a scheduled background
> > process).
> >
> > Cheers
> > Rene
> >
> >
> > -----Ursprüngliche Nachricht-----
> > Von: laredotornado [mailto:laredotornado@gmail.com]
> > Gesendet: Mittwoch, 25. November 2009 17:05
> > An: users@myfaces.apache.org
> > Betreff: Possible to force bean to load into session at session start up?
> >
> >
> > Hi,
> >
> > I'm using MyFaces 1.1.6.  I have this declaration in my faces-config.xml
> > file ...
> >
> >   <managed-bean>
> >     <managed-bean-name>emailController</managed-bean-name>
> >     <managed-bean-class>
> >       myco.util.jsf.controller.EmailController
> >     </managed-bean-class>
> >     <managed-bean-scope>session</managed-bean-scope>
> >     <managed-property>
> >       <property-name>mailSession</property-name>
> >       <property-class>java.lang.String</property-class>
> >       <value>java:comp/env/mail/session</value>
> >     </managed-property>
> >    </managed-bean>
> >
> > What I am noticing, though, is that the bean is not actually placed into
> > the
> > session until I visit a JSF page that references the bean, like
> >
> > <h:inputHidden value="#{emailController.field1}" />
> >
> > I'm in a situation where I need to access the bean in a controller before
> > I
> > visit a page that references it.  Does anyone know how to tell
> MyFaces/JSF
> > to load the bean when the session starts?
> >
> > Thanks for all your help, - Dave
> >
> > --
> > View this message in context:
> >
> http://old.nabble.com/Possible-to-force-bean-to-load-into-session-at-session
> > -start-up--tp26515381p26515381.html
> > Sent from the MyFaces - Users mailing list archive at Nabble.com.
> >
> >
> >
>
> --
> View this message in context:
> http://old.nabble.com/Possible-to-force-bean-to-load-into-session-at-session-start-up--tp26515381p26515686.html
> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>
>

RE: AW: Possible to force bean to load into session at session start up?

Posted by laredotornado <la...@gmail.com>.
I tried out Matt's solution and it works well (as a short term fix until I
can redesign the application).  The exact syntax was

EmailController ectrl = (EmailController)
facesContext.getApplication().getVariableResolver().resolveVariable(facesContext,
"emailController");	

Thanks a million, - Dave




Matt.Rossner-prest wrote:
> 
> I agree with the others that it's better to redesign the application,
> however it's possible to access a managed bean as long as you can have the
> faces context available. 
> 
>  
> 
> You need to do something like this, I don't remember the exact syntax...
> 
>  
> 
> facesContext.getApplication().getVariableResolver().resolveVariable("#{myManagedBean}");
> 
>  
> 
> Calling resolve variable will instantiate the bean and do initialize any
> variables defined in the faces-config. It's essentially the same as using
> it on a page. Since using on a page will eventually call the same method
> (resolveVariable).
> 
>  
> 
> Matt Rossner
> 
> Prestataire - Société OnePoint Technology
> 
> +33 (1) 41 24 62 66
> 
>  
> 
> -----Original Message-----
> From: laredotornado [mailto:laredotornado@gmail.com] 
> Sent: mercredi 25 novembre 2009 17:22
> To: users@myfaces.apache.org
> Subject: Re: AW: Possible to force bean to load into session at session
> start up?
> 
>  
> 
>  
> 
> There may certainly be a design flaw and I definitely want to fix that at
> 
> some point.  But for now, regarding your comment ...
> 
>  
> 
>> I guess it is possible
> 
>  
> 
> How?
> 
>  
> 
> Thanks, - Dave
> 
>  
> 
>  
> 
>  
> 
> Rene Guenther wrote:
> 
>> 
> 
>> Hi Dave,
> 
>> 
> 
>> I guess it is possible. I just wanted to point out though that on a first
> 
>> glance it looks like a design flaw. In my opinion a managed bean should
> 
>> always be related to a JSF page. If it is not related, it should not be
> 
>> declared as a bean of the presentation layer.
> 
>> Eg. a bean responsible for email sending and receiving is a bean that
> 
>> could
> 
>> be used without a presentation layer (eg. in a scheduled background
> 
>> process).
> 
>> 
> 
>> Cheers
> 
>> Rene
> 
>> 
> 
>> 
> 
>> -----Ursprüngliche Nachricht-----
> 
>> Von: laredotornado [mailto:laredotornado@gmail.com] 
> 
>> Gesendet: Mittwoch, 25. November 2009 17:05
> 
>> An: users@myfaces.apache.org
> 
>> Betreff: Possible to force bean to load into session at session start up?
> 
>> 
> 
>> 
> 
>> Hi,
> 
>> 
> 
>> I'm using MyFaces 1.1.6.  I have this declaration in my faces-config.xml
> 
>> file ...
> 
>> 
> 
>>   <managed-bean>
> 
>>     <managed-bean-name>emailController</managed-bean-name>
> 
>>     <managed-bean-class>
> 
>>           myco.util.jsf.controller.EmailController
> 
>>     </managed-bean-class>
> 
>>     <managed-bean-scope>session</managed-bean-scope>
> 
>>     <managed-property>
> 
>>       <property-name>mailSession</property-name>
> 
>>       <property-class>java.lang.String</property-class>
> 
>>       <value>java:comp/env/mail/session</value>
> 
>>     </managed-property>
> 
>>    </managed-bean>  
> 
>> 
> 
>> What I am noticing, though, is that the bean is not actually placed into
> 
>> the
> 
>> session until I visit a JSF page that references the bean, like 
> 
>> 
> 
>> <h:inputHidden value="#{emailController.field1}" />
> 
>> 
> 
>> I'm in a situation where I need to access the bean in a controller before
> 
>> I
> 
>> visit a page that references it.  Does anyone know how to tell
>> MyFaces/JSF
> 
>> to load the bean when the session starts?  
> 
>> 
> 
>> Thanks for all your help, - Dave
> 
>> 
> 
>> -- 
> 
>> View this message in context:
> 
>> http://old.nabble.com/Possible-to-force-bean-to-load-into-session-at-session
> 
>> -start-up--tp26515381p26515381.html
> 
>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
> 
>> 
> 
>> 
> 
>> 
> 
>  
> 
> -- 
> 
> View this message in context:
> http://old.nabble.com/Possible-to-force-bean-to-load-into-session-at-session-start-up--tp26515381p26515686.html
> 
> Sent from the MyFaces - Users mailing list archive at Nabble.com.
> 
>  
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/Possible-to-force-bean-to-load-into-session-at-session-start-up--tp26515381p26516658.html
Sent from the MyFaces - Users mailing list archive at Nabble.com.


RE: AW: Possible to force bean to load into session at session start up?

Posted by Ma...@sanofi-aventis.com.
I agree with the others that it's better to redesign the application, however it's possible to access a managed bean as long as you can have the faces context available. 

 

You need to do something like this, I don't remember the exact syntax...

 

facesContext.getApplication().getVariableResolver().resolveVariable("#{myManagedBean}");

 

Calling resolve variable will instantiate the bean and do initialize any variables defined in the faces-config. It's essentially the same as using it on a page. Since using on a page will eventually call the same method (resolveVariable).

 

Matt Rossner

Prestataire - Société OnePoint Technology

+33 (1) 41 24 62 66

 

-----Original Message-----
From: laredotornado [mailto:laredotornado@gmail.com] 
Sent: mercredi 25 novembre 2009 17:22
To: users@myfaces.apache.org
Subject: Re: AW: Possible to force bean to load into session at session start up?

 

 

There may certainly be a design flaw and I definitely want to fix that at

some point.  But for now, regarding your comment ...

 

> I guess it is possible

 

How?

 

Thanks, - Dave

 

 

 

Rene Guenther wrote:

> 

> Hi Dave,

> 

> I guess it is possible. I just wanted to point out though that on a first

> glance it looks like a design flaw. In my opinion a managed bean should

> always be related to a JSF page. If it is not related, it should not be

> declared as a bean of the presentation layer.

> Eg. a bean responsible for email sending and receiving is a bean that

> could

> be used without a presentation layer (eg. in a scheduled background

> process).

> 

> Cheers

> Rene

> 

> 

> -----Ursprüngliche Nachricht-----

> Von: laredotornado [mailto:laredotornado@gmail.com] 

> Gesendet: Mittwoch, 25. November 2009 17:05

> An: users@myfaces.apache.org

> Betreff: Possible to force bean to load into session at session start up?

> 

> 

> Hi,

> 

> I'm using MyFaces 1.1.6.  I have this declaration in my faces-config.xml

> file ...

> 

>   <managed-bean>

>     <managed-bean-name>emailController</managed-bean-name>

>     <managed-bean-class>

>           myco.util.jsf.controller.EmailController

>     </managed-bean-class>

>     <managed-bean-scope>session</managed-bean-scope>

>     <managed-property>

>       <property-name>mailSession</property-name>

>       <property-class>java.lang.String</property-class>

>       <value>java:comp/env/mail/session</value>

>     </managed-property>

>    </managed-bean>  

> 

> What I am noticing, though, is that the bean is not actually placed into

> the

> session until I visit a JSF page that references the bean, like 

> 

> <h:inputHidden value="#{emailController.field1}" />

> 

> I'm in a situation where I need to access the bean in a controller before

> I

> visit a page that references it.  Does anyone know how to tell MyFaces/JSF

> to load the bean when the session starts?  

> 

> Thanks for all your help, - Dave

> 

> -- 

> View this message in context:

> http://old.nabble.com/Possible-to-force-bean-to-load-into-session-at-session

> -start-up--tp26515381p26515381.html

> Sent from the MyFaces - Users mailing list archive at Nabble.com.

> 

> 

> 

 

-- 

View this message in context: http://old.nabble.com/Possible-to-force-bean-to-load-into-session-at-session-start-up--tp26515381p26515686.html

Sent from the MyFaces - Users mailing list archive at Nabble.com.

 


Re: AW: Possible to force bean to load into session at session start up?

Posted by laredotornado <la...@gmail.com>.
There may certainly be a design flaw and I definitely want to fix that at
some point.  But for now, regarding your comment ...

> I guess it is possible

How?

Thanks, - Dave



Rene Guenther wrote:
> 
> Hi Dave,
> 
> I guess it is possible. I just wanted to point out though that on a first
> glance it looks like a design flaw. In my opinion a managed bean should
> always be related to a JSF page. If it is not related, it should not be
> declared as a bean of the presentation layer.
> Eg. a bean responsible for email sending and receiving is a bean that
> could
> be used without a presentation layer (eg. in a scheduled background
> process).
> 
> Cheers
> Rene
> 
> 
> -----Ursprüngliche Nachricht-----
> Von: laredotornado [mailto:laredotornado@gmail.com] 
> Gesendet: Mittwoch, 25. November 2009 17:05
> An: users@myfaces.apache.org
> Betreff: Possible to force bean to load into session at session start up?
> 
> 
> Hi,
> 
> I'm using MyFaces 1.1.6.  I have this declaration in my faces-config.xml
> file ...
> 
>   <managed-bean>
>     <managed-bean-name>emailController</managed-bean-name>
>     <managed-bean-class>
>     	myco.util.jsf.controller.EmailController
>     </managed-bean-class>
>     <managed-bean-scope>session</managed-bean-scope>
>     <managed-property>
>       <property-name>mailSession</property-name>
>       <property-class>java.lang.String</property-class>
>       <value>java:comp/env/mail/session</value>
>     </managed-property>
>    </managed-bean>  
> 
> What I am noticing, though, is that the bean is not actually placed into
> the
> session until I visit a JSF page that references the bean, like 
> 
> <h:inputHidden value="#{emailController.field1}" />
> 
> I'm in a situation where I need to access the bean in a controller before
> I
> visit a page that references it.  Does anyone know how to tell MyFaces/JSF
> to load the bean when the session starts?  
> 
> Thanks for all your help, - Dave
> 
> -- 
> View this message in context:
> http://old.nabble.com/Possible-to-force-bean-to-load-into-session-at-session
> -start-up--tp26515381p26515381.html
> Sent from the MyFaces - Users mailing list archive at Nabble.com.
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/Possible-to-force-bean-to-load-into-session-at-session-start-up--tp26515381p26515686.html
Sent from the MyFaces - Users mailing list archive at Nabble.com.


AW: Possible to force bean to load into session at session start up?

Posted by "Günther, Rene - Innflow AG" <re...@innflow.com>.
Hi Dave,

I guess it is possible. I just wanted to point out though that on a first
glance it looks like a design flaw. In my opinion a managed bean should
always be related to a JSF page. If it is not related, it should not be
declared as a bean of the presentation layer.
Eg. a bean responsible for email sending and receiving is a bean that could
be used without a presentation layer (eg. in a scheduled background
process).

Cheers
Rene


-----Ursprüngliche Nachricht-----
Von: laredotornado [mailto:laredotornado@gmail.com] 
Gesendet: Mittwoch, 25. November 2009 17:05
An: users@myfaces.apache.org
Betreff: Possible to force bean to load into session at session start up?


Hi,

I'm using MyFaces 1.1.6.  I have this declaration in my faces-config.xml
file ...

  <managed-bean>
    <managed-bean-name>emailController</managed-bean-name>
    <managed-bean-class>
    	myco.util.jsf.controller.EmailController
    </managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    <managed-property>
      <property-name>mailSession</property-name>
      <property-class>java.lang.String</property-class>
      <value>java:comp/env/mail/session</value>
    </managed-property>
   </managed-bean>  

What I am noticing, though, is that the bean is not actually placed into the
session until I visit a JSF page that references the bean, like 

<h:inputHidden value="#{emailController.field1}" />

I'm in a situation where I need to access the bean in a controller before I
visit a page that references it.  Does anyone know how to tell MyFaces/JSF
to load the bean when the session starts?  

Thanks for all your help, - Dave

-- 
View this message in context:
http://old.nabble.com/Possible-to-force-bean-to-load-into-session-at-session
-start-up--tp26515381p26515381.html
Sent from the MyFaces - Users mailing list archive at Nabble.com.