Title: Local interfaces throwing RemoteException

For our fa�ade beans for which we generate both remote and local interfaces, we get errors on deployment from WebLogic indicating that the methods defined in the Xdoclet generated local interface must not throw RemoteException.  We have a workaround where we tweak the generated code and remove the RemoteExceptions during our build, but I was wondering if there's a better solution.

I can see from the local.xdt and remote.xdt files that it's possible to append or skip exceptions, but RemoteExceptions are not skipped in local.xdt.  Hoping someone can enlighten me on this.

Any help is much appreciated.  I've included below the WebLogic deployment exception, the Xdoclet generated UserFacadeLocal, and the class tags for the original EJB.

Thanks
Pete Fletcher


------------ Here's the WebLogic deployment exception:
Exception:weblogic.management.ApplicationException: prepare failed for metastoredatamodel Module: metastoredatamodel Error: Exception preparing module: EJBModule(metastoredatamodel,status=NEW) Unable to deploy EJB: metastoredatamodel.jar from metastoredatamodel.jar: In EJB UserFacade, method create(com.iauq.metastore.busobj.interfaces.UserData) defined in the local interface must not include java.rmi.RemoteException in its throws clause. In EJB UserFacade, method update(com.iauq.metastore.busobj.interfaces.UserData) defined in the local interface must not include java.rmi.RemoteException in its throws clause.

------------  Here's the generated UserFacadeLocal:
/*
 * Generated by XDoclet - Do not edit!
 */
package com.iauq.metastore.objects.interfaces;

/**
 * Local interface for UserFacade.
 */
public interface UserFacadeLocal
   extends javax.ejb.EJBLocalObject
{

   public com.iauq.metastore.busobj.interfaces.UserData findByPrimaryKey( com.iauq.metastore.busobj.interfaces.IAUDataObjPK pk ) throws javax.ejb.FinderException, javax.naming.NamingException;

   public com.iauq.metastore.busobj.interfaces.UserData findByName( com.iauq.metastore.busobj.interfaces.IAUDataObjPK pk,java.lang.String lastName ) throws javax.ejb.FinderException, javax.naming.NamingException;

   public com.iauq.metastore.busobj.interfaces.UserData create( java.lang.String id,java.lang.String org ) throws javax.ejb.CreateException, java.rmi.RemoteException, javax.naming.NamingException;

   public com.iauq.metastore.busobj.interfaces.UserData create( com.iauq.metastore.busobj.interfaces.UserData data ) throws javax.ejb.CreateException, java.rmi.RemoteException, javax.naming.NamingException;

   public com.iauq.metastore.busobj.interfaces.UserData update( com.iauq.metastore.busobj.interfaces.UserData data ) throws java.rmi.RemoteException, javax.ejb.FinderException, javax.naming.NamingException;

}

------------ Here are the class tags for the EJB:
 * @ejb.permission unchecked="true"
 *
 * @ejb.bean
 *    type="BMP"
 *    name="User"
 *    description="IAU MetaStore User"
 *    local-jndi-name="ejb/metastore/UserLocal"
 *    view-type="both"
 *    schema="User"
 *
 * @ejb.value-object
 *    match="*"
 *
 * @ejb.data-object
 *
 * @ejb.dao
 *    impl-class="UserDAOImpl"
 *
 * @ejb.pk
 *    class="com.iauq.metastore.busobj.interfaces.IAUDataObjPK"
 *    generate="false"
 *
 * @ejb.facade
 *    local-jndi-name="ejb/metastore/UserFacade"
 *    view-type="both"
 *
 * @weblogic.data-source-name java:/MetaStoreDB


Reply via email to