The moose likes JSF and the fly likes Access managed bean from a servlet Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » JSF
Bookmark "Access managed bean from a servlet" Watch "Access managed bean from a servlet" New topic

Access managed bean from a servlet

dwarakanathan thiru
Ranch Hand

Joined: Oct 14, 2009
Posts: 49
I want to invoke a managed bean method in a Servlet.
And so I used the following code:

I am able to get the value when the page from where the action has been initiated is not mapped to the backing bean's navigation rule.

But in some cases where the page from where the action has been initiated is mapped to the backing bean's navigation rule, I am unable to access the backing bean.
I get a NULL value for the object of the backing bean.

The scope of the backing bean is set to SESSION and I do not evict it explicitly.

Please let me know how can I fix this issue.

Thanks in advance!!

Dwarak T
Marcin Majewski

Joined: Dec 20, 2010
Posts: 14

Try the following:

In some cases this return null as the JSF managed bean and servlet life cycles are different. In this case it might mean that you've called your servlet too early.

Check out my site at whizzarts.pl
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 15959

JSF managed beans are constructed on demand, not in advance. So if you attempt to access a managed bean but that bean hasn't yet been accessed by a JSF request, it won't exist even though it's defined in faces-config.

There are really only 2 ways to handle that.

1. Ensure that a JSF request is ALWAYS made first

2. Manually construct the bean in servlet code if it doesn't exist yet.

Solution #2 does have one downside, though. The JSF bean manager also injects the managed properties when it constructs the bean. If you instantiate the bean in servlet code, you also have to manually inject the managed properties. Which means that you have to keep that code in sync with the management specs in faces-config or unpredictable things may happen.

Customer surveys are for companies who didn't pay proper attention to begin with.
Consider Paul's rocket mass heater.
subject: Access managed bean from a servlet
Similar Threads
commandLink param problem
querystring values and GET method
Handling session timeout
cant deploy my application,please help
navigation problem from main menu