owenb       2003/04/06 06:36:01

  Modified:    java/src/org/apache/wsif/providers/ejb WSIFPort_EJB.java
  Log:
  Improvements to getEjbObjectClass method and related methods
  
  Revision  Changes    Path
  1.12      +14 -6     
xml-axis-wsif/java/src/org/apache/wsif/providers/ejb/WSIFPort_EJB.java
  
  Index: WSIFPort_EJB.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis-wsif/java/src/org/apache/wsif/providers/ejb/WSIFPort_EJB.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- WSIFPort_EJB.java 4 Feb 2003 13:54:13 -0000       1.11
  +++ WSIFPort_EJB.java 6 Apr 2003 13:36:00 -0000       1.12
  @@ -249,7 +249,10 @@
       }
   
       /**
  -     * Gets the Java class of the EJB remote interface without having to create the 
object
  +     * Gets the Java class of the EJB remote interface. The method attempts to get 
the class
  +     * information from the EJBMetaData for the EJBHome but if this fails, it will 
create
  +     * the EJBObject and get the class from the instamce.
  +     * 
        * @return Class   the class of the service object
        */
       Class getEjbObjectClass() throws WSIFException {
  @@ -272,10 +275,12 @@
                       ejbObjectClass =
                           fieldEjbHome.getEJBMetaData().getRemoteInterfaceClass();
                   } catch (RemoteException re) {
  -                    Trc.exception(re);
  -                    throw new WSIFException(
  -                        "Unable to get EJBObject class",
  -                        re);
  +                    Trc.ignoredException(re);
  +                }
  +                // As a last resort, attempt to create the EJBObject and get its 
class
  +                if (ejbObjectClass == null) {
  +                     getEjbObject();
  +                     ejbObjectClass = fieldEjbObject.getClass();
                   }
               }
           }
  @@ -289,7 +294,7 @@
        * @return Method[] the methods of the EJB's remote interface
        */
       Method[] getEjbObjectMethods() throws WSIFException {
  -        // no method access modifier as it used by WSIFOperation_Java
  +        // no method access modifier as it used by WSIFOperation_EJB
           Trc.entry(this);
           if (ejbObjectMethods == null) {
               Class c = getEjbObjectClass();
  @@ -332,6 +337,9 @@
       public void setEjbObject(EJBObject newEjbObject) {
           Trc.entry(this, newEjbObject);
           fieldEjbObject = newEjbObject;
  +        if (fieldEjbObject != null) {
  +             ejbObjectClass = fieldEjbObject.getClass();
  +        }
           Trc.exit();
       }
   
  
  
  

Reply via email to