[jboss-user] [EJB 3.0 Users] - EJB Injection into Managed bean returns NullPointerException

ebross do-not-reply at jboss.com
Wed Oct 21 20:19:45 EDT 2009


EJB Injection and NullPointerExcception

Development tools:
---------------
Linux
Java 6.x
JSF 1.2
richfaces-ui-3.3.1.GA
JBoss 5.1.0.GA
Liferay-5.2.3

Outline:
When EJB Stateless bean is injected into JSF/RichFaces managed bean and ran, the result is NullPointerException.

I have tried using one of the followings without success:

(i) @EJB 
(ii) @EJB(name = "DataConstraintController") 
(iii) @javax.ejb.EJB(name = "DataConstraintController",  mappedName="odms/DataConstraintDAOImpl/local")
(iv) With explicit JNDI lookup: 
	        javax.naming.InitialContext initialContext = new javax.naming.InitialContext();
  | 	        return (DataConstraintLocal) initialContext.lookup("odms/DataConstraintController/local");
  | 	      } catch (Exception e) {
  | 	        e.printStackTrace();
  | 	        throw new RuntimeException("couldn't lookup DataConstraintLocal", e);
  | 	      }
  | 

It is an ongoing project so changes are often made to the java files, but  the deployment files have not changed for 
the past three months and it was runing until two days ago. And no one seem to know why EJB injection is failing.

The ejb.jar, ejbClient.jar  and *.war are in the same ear. Could it be a corrupt library? Should I re-install JBoss?

Help! and thanks in advance.

--------------------------------------------------------------------------------------
EJB Local Interface:  DataConstraintLocal
--------------------------------------------------------------------------------------
@javax.ejb.Local
  | public interface DataConstraintLocal extends com.xxxxx.xxxx.ejb.intf.DataConstraintService, java.io.Serializable{
  | 
  | }

--------------------------------------------------------------------------------------
EJB Remote Interface:  DataConstraintRemote
--------------------------------------------------------------------------------------
@javax.ejb.Local
  | public interface DataConstraintRemote extends com.xxxxx.xxxx.ejb.intf.DataConstraintService, java.io.Serializable{
  | 
  | }
  | 
--------------------------------------------------------------------------------------
EJB Session Bean:  DataConstraintController
--------------------------------------------------------------------------------------

  | import com.xxxxx.xxxx.domain.bean.DataConstraintEntity;
  | import  com.xxxxx.xxxx.dao.intf.DataConstraintDAOLocal;
  | 
  | @javax.ejb.Stateless(name="DataConstraintController")
  | public class DataConstraintController implements com.xxxxx.xxxx.ejb.intf.DataConstraintRemote,  com.xxxxx.xxxx.ejb.intf.DataConstraintLocal{
  | 
  | 
  | @javax.ejb.EJB(mappedName="odms/DataConstraintDAOImpl/local")
  | private DataConstraintDAOLocal delegate;
  | 
  | public DataConstraintController() {
  | }
  | 
  | /**
  | * Finder  method for  DataConstraintEntity object held in a database
  | *
  | * @return the list of  DataConstraintEntity objects in the database
  | */
  | @javax.ejb.TransactionAttribute(javax.ejb.TransactionAttributeType.NOT_SUPPORTED)
  | public DataConstraintEntity[] findAll() throws com.xxxxx.xxxx.gen.exception.EJBException {
  | 
  | java.util.List<DataConstraintEntity> retList = delegate.findAll();
  | return (DataConstraintEntity[]) retList.toArray(new DataConstraintEntity[retList.size()]); 
  | }
  | ....
  | }
--------------------------------------------------------------------------------------
Backing Bean:  NewUserBkBean
--------------------------------------------------------------------------------------
public class NewUserBkBean  implements java.io.Serializable{
  | 
  |  private static final String CRUD_MODE = "all"; 
  |  private static final String TABLE_NAME = com.xxxxx.xxxx.domain.bean.UserEntity.TABLE_NAME;
  |  
  | 
  | public NewUserBkBean(){
  |   init();
  | }
  | 
  | private  void init(){
  | 		java.util.Map<String, Object> propertyValues = new  java.util.HashMap<String, Object>();
  | 		propertyValues.put("parentTable", TABLE_NAME);
  | 		propertyValues.put("crudMode", CRUD_MODE);
  | 		 try {
  |      if(dataConstraintController == null){
  |             //throw new NullPointerException("Null dataConstraintController");
  |        }     
  |       DataConstraintEntity[] retList = dataConstraintController.findAll();
  |       if(retList == null || retList.length ==  0){
  |             throw new NullPointerException("DataConstraintEntity is empty: common cause is absence of data in the DataConstraint db table");
  |       }
  |       UserFormBean userFormBean = new UserFormBean(retList, new com.xxxxx.xxxx.web.model.UserCredential(), UserFormBean.class);
  |       if(userFormBean != null){
  |          setFormBean(userFormBean);
  |            renderUserComponents();
  |            renderDocumentComponents();
  |            renderObjectExComponents();
  |           }
  |      } catch (Exception e) {
  |       e.printStackTrace();
  |     }
  | }
  | 

--------------------------------------------------------------------------------------
StackTrace
--------------------------------------------------------------------------------------
18:35:05,670 INFO  [faces] Process headers request for portlet MainUserPortlet
  | 18:35:05,675 INFO  [faces] Process view request for portlet MainUserPortlet
  | 18:36:02,257 ERROR [STDERR] java.lang.NullPointerException
  | 18:36:02,293 ERROR [STDERR]     at com.xxxxx.xxxx.web.bean.NewUserBkBean.init(NewUserBkBean.java:230)
  | 18:36:02,294 ERROR [STDERR]     at com.xxxxx.xxxx.web.bean.NewUserBkBean.<init>(NewUserBkBean.java:209)
  | 18:36:02,294 ERROR [STDERR]     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  | 18:36:02,294 ERROR [STDERR]     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
  | 18:36:02,295 ERROR [STDERR]     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
  | 18:36:02,295 ERROR [STDERR]     at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
  | 18:36:02,295 ERROR [STDERR]     at java.lang.Class.newInstance0(Class.java:355)
  | 18:36:02,296 ERROR [STDERR]     at java.lang.Class.newInstance(Class.java:308)
  | 18:36:02,296 ERROR [STDERR]     at com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:186)
  | 18:36:02,296 ERROR [STDERR]     at com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:106)
  | 18:36:02,297 ERROR [STDERR]     at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:368)
  | 18:36:02,297 ERROR [STDERR]     at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:230)
  | 18:36:02,298 ERROR [STDERR]     at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:86)
  | 18:36:02,298 ERROR [STDERR]     at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
  | 18:36:02,299 ERROR [STDERR]     at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
  | 18:36:02,299 ERROR [STDERR]     at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:61)
  | 18:36:02,299 ERROR [STDERR]     at org.apache.el.parser.AstValue.getValue(AstValue.java:107)
  | 18:36:02,300 ERROR [STDERR]     at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
  | 18:36:02,300 ERROR [STDERR]     at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
  | 18:36:02,300 ERROR [STDERR]     at 
  | ...
  | 
  | 18:36:02,321 ERROR [STDERR]     at com.xxxxx.xxxx.web.portlet.bean.MainFacesPortlet.doView(MainFacesPortlet.java:84)
  | 18:36:02,322 ERROR [STDERR]     at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:328)
  | 18:36:02,322 ERROR [STDERR]     at javax.portlet.faces.GenericFacesPortlet.doDispatch(GenericFacesPortlet.java:445)
  | 18:36:02,323 ERROR [STDERR]     at com.xxxxx.xxxx.web.portlet.bean.MainFacesPortlet.doDispatch(MainFacesPortlet.java:104)
  | 18:36:02,324 ERROR [STDERR]     at javax.portlet.GenericPortlet.render(GenericPortlet.java:233)
  | 18:36:02,324 ERROR [STDERR]     at com.sun.portal.portletcontainer.appengine.filter.FilterChainImpl.doFilter(FilterChainImpl.java:126)
  | 18:36:02,325 ERROR [STDERR]     at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:69)
  | 18:36:02,325 ERROR [STDERR]     at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:100)
  | ...
  | 18:36:18,016 INFO  [faces] Process resource request for portlet MainUserPortlet
  | 18:36:19,501 INFO  [faces] Process resource request for portlet MainUserPortlet
  | 18:36:20,319 
  | 

View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4261621#4261621

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4261621



More information about the jboss-user mailing list