Development Platform: 
Eclipse 
Linux 
JBoss 5 
JSF and Trinadad 

Problem Description: 
I have two classes: 
(a) Stateless bean: DocumentController, packaged in a ejb.jar 
(b) JSF Backing beans: AbstractDocumentPageBean, package: web.war 

1. The ejb.jar and web.war are ear modules and deployed succesfully in ear 
file. 
2. When a web page is called, a form appears, 
3. I fill the fields and click the "create" button
4. Validation is ok --no error display
5. JBoss displays the stack trace (see below), "Couldn't handle invocation 
directly within...StatelessRemoteProxyInvocationHandler"

Could someone please help me understand what "Couldn't handle invocation 
directly within...StatelessRemoteProxyInvocationHandler" means

Thank you in advance


  | 
----------------------------------------------------------------------------------------------------
  | Stateless: DocumentController, Package: ejb.jar 
  | 
----------------------------------------------------------------------------------------------------
  | @javax.ejb.Stateless(mappedName="ejb/DocumentController")
  | @javax.ejb.Remote({com.xxxxxxxx.xxxx.ejb.intf.DocumentRemote.class})
  | @javax.ejb.Local({com.xxxxxxxx.xxxx.ejb.intf.DocumentLocal.class})
  | 
@javax.ejb.TransactionManagement(value=javax.ejb.TransactionManagementType.CONTAINER)
  | 
@javax.ejb.TransactionAttribute(javax.ejb.TransactionAttributeType.REQUIRES_NEW)
  | @javax.interceptor.Interceptors 
({com.xxxxxxxx.xxxx.ejb.interceptor.Tracer.class})
  | 
  | // Security annotation
  | @javax.annotation.security.DeclareRoles({"admin", "employee", "member", 
"subscriber"})
  | @javax.annotation.security.RolesAllowed({"admin","employee", "member", 
"subscriber"})
  | @org.jboss.ejb3.annotation.SecurityDomain(value = "xxxxRealm")
  | 
  | public class DocumentController implements 
com.xxxxxxxx.xxxx.ejb.intf.DocumentRemote,  
com.xxxxxxxx.xxxx.ejb.intf.DocumentLocal, 
  | java.io.Serializable{
  | 
  | /**
  | * The logger object.
  | */
  | private static final org.apache.commons.logging.Log log = 
org.apache.commons.logging.LogFactory.getLog(DocumentController.class);
  | 
  | @javax.ejb.EJB
  | private com.xxxxxxxx.xxxx.dao.intf.DocumentDAOLocal documentDAO;
  | 
  | public DocumentController() {
  | }
  | 
  | /**
  | */
  | @javax.annotation.security.PermitAll
  | 
  | public DocumentEntity createEntity(DocumentEntity bean) { <----- CALL IN 
BACKING BEAN
  | 
  | log.debug("Entering createEntity");
  |  
  | DocumentEntity retVal = null;
  | if (bean== null) {
  |     log.error("Exiting createEntity - Could not do create Document: " + 
"Null Document");
  |     return null;
  | }
  | if(!bean.isNotNullFieldEmpty()){
  |     log.error("Exiting createEntity - Could not do create Document: " + 
"Document contains empty mandatory field");
  |     return null;
  | }   
  | try{
  | retVal =  getDocumentDAOImpl().createEntity(bean);  
  | } catch(com.xxxxxxxx.xxxx.dao.exception.DAOException e) {
  |     e.printStackTrace();
  |     log.error("Exiting createEntity - Could not do create Document: " + 
e.getMessage(), e);
  |     return null;
  | }
  | log.debug("Exiting createEntity");
  | return retVal;
  | }
  | }
  | 

  | 
----------------------------------------------------------------------------------------------------
  | JSf Backing beans: AbstractDocumentPageBean, Package: web.war 
  | 
----------------------------------------------------------------------------------------------------
  | public class AbstractDocumentPageBean extends 
com.xxxxxxxx.xxxx.web.bean.AbstractFacesBean{
  | 
  | /**
  | * The logger object.
  | */
  | private static final org.apache.commons.logging.Log log = 
org.apache.commons.logging.LogFactory.getLog(AbstractDocumentPageBean.class);
  | /**
  | * The DocumentForm object.
  | */
  | protected DocumentForm formBean = null;
  | protected  DocumentConverter converter = null;
  | protected DocumentForm[] documentAsArray = null;
  | 
  | protected UserInfoBean userInfo = null;
  | 
  | private javax.faces.model.DataModel listModel;
  | 
  | @javax.ejb.EJB
  | private com.xxxxxxxx.xxxx.ejb.intf.DocumentRemote documentManager;
  | 
  | /* 
  | * Non-arg Constructor
  | */
  | public AbstractDocumentPageBean(final DocumentForm formBean){
  |     this(formBean, new UserInfoBean());
  | }
  | 
  | /**
  | * Getter method for formBean property.
  | * 
  | * @return the value of formBean property
  | */
  | public DocumentForm getFormBean(){
  |     if (formBean == null) {
  |                     formBean = (DocumentForm ) 
JSFUtils.getObjectFromRequestParameter("jsfcrud.Document", converter, null);
  |     }
  |     if (formBean == null) {
  |                     formBean = new DocumentForm(new DocumentEntity(), 
userInfo);
  |                     editAction = false;
  |                     deleteAction = false;
  |     }
  |     return formBean;
  | }
  | 
  | /**
  | * Getter method for FormBean.DocumentEntity property.
  | * 
  | * Returns the value of the <code>FormBean.DocumentEntity</code> property.
  | */
  | public DocumentEntity  getFormValue(){
  |             return getFormBean().getBackingData();
  |  }
  |  
  | /**
  | * Creates a new Document. 
  | *
  | *...@return the outcome of the processing
  | */
  | public String createButton_action(){
  |  log.debug("Entering createButton_action");
  | 
  | UserInfoBean currentUser  = getUserInfo();
  | if (currentUser.getAuthenticate() == true && currentUser.getAuthenticated() 
== false) {
  |     log.error("Exiting createButton_action  : " + "User is not 
authenticated", null);
  |     return null;
  | }
  | /* 
  | * At this point the formBean should not have an id 
  | * but if it does, then don't create it, but anyway check 
  | * whether the id already exist or not. If it does then 
  | * display as duplicate --already exist in the database
  | */
  | if(getFormValue().getPrimaryKey() != null){
  | DocumentEntity retVal = 
getDocumentManager().findByPrimaryKey(getFormValue().getPrimaryKey());
  | if(retVal != null){
  |     log.error("Exiting createButton_action  : " + "Cannot create a 
duplicate.", null);
  |     addFacesErrorMessage("Document already exists");
  |     return null;
  | }
  | }
  | DocumentEntity bean= new DocumentEntity();
  | bean.setDomainType(getFormValue().getDomainType());
  | bean.setDescription(getFormValue().getDescription());
  | bean.setCreatedBy(getFormValue().getCreatedBy());
  | bean.setDateCreated(getFormValue().getDateCreated());
  | bean.setUpdatedBy(getFormValue().getUpdatedBy());
  | bean.setDateLastUpdated(getFormValue().getDateLastUpdated());
  | bean.setActivated(getFormValue().getActivated());
  | bean.setNotes(getFormValue().getNotes());
  | bean.setVersion(getFormValue().getVersion());
  | bean.setHits(getFormValue().getHits());
  | try {
  | 
  | getDocumentManager().createEntity(bean); <---- PROBLEM LINE
  | 
  | 
  | addSuccessMessage("Document was successfully created.");
  | } catch (Exception e) {               
  |     log.error("Exiting createButton_action  : " + "Unexpected error when 
creating Document", null);
  |     addFacesErrorMessage("Unexpected error when creating Document");
  |     return null;
  | } 
  | log.debug("Exiting createButton_action");
  | return "success";
  | }
  | }
  | 
  | 

  | 
----------------------------------------------------------------------------------------------------
  | Stack Trace : Couldn't handle invocation directly 
within...StatelessRemoteProxyInvocationHandler
  | 
----------------------------------------------------------------------------------------------------
  | 2009-02-12 17:05:23,290 DEBUG 
[org.jboss.ejb3.proxy.handler.ProxyInvocationHandlerBase] 
(http-localhost%2F127.0.0.1-8080-1) Couldn't handle invocation directly within 
org.jboss.ejb3.proxy.handler.session.stateless.statelessremoteproxyinvocationhand...@3ce5d:
 Current invocation "public abstract 
com.xxxxxxxx.xxxx.entity.model.DocumentEntity 
com.xxxxxxxx.xxxx.ejb.intf.DocumentService.createEntity(com.xxxxxxxx.xxxx.entity.model.DocumentEntity)
 throws com.xxxxxxxx.xxxx.dao.exception.DAOException" is not eligible for 
direct handling by 
org.jboss.ejb3.proxy.handler.session.stateless.statelessremoteproxyinvocationhand...@3ce5d
  | 2009-02-12 17:05:23,342 DEBUG 
[org.jboss.ejb3.proxy.invocation.InvokableContextStatefulRemoteProxyInvocationHack]
 (http-localhost%2F127.0.0.1-8080-1) Received invocation request to method 
com.xxxxxxxx.xxxx.ejb.intf.DocumentRemote: 
com.xxxxxxxx.xxxx.ejb.intf.DocumentService.createEntity(com.xxxxxxxx.xxxx.entity.model.DocumentEntity);
 using hash: 5676740933045534775
  | 2009-02-12 17:05:24,247 DEBUG [org.jboss.ejb3.stateless.StatelessContainer] 
(http-localhost%2F127.0.0.1-8080-1) Received dynamic invocation for method with 
hash: 5676740933045534775
  | 2009-02-12 17:05:25,134 ERROR 
[com.xxxxxxxx.xxxx.web.bean.AbstractDocumentPageBean] 
(http-localhost%2F127.0.0.1-8080-1) Exiting createButton_action  : Unexpected 
error when creating Document
  | 

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

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4209708
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to