2 Replies Latest reply on Sep 3, 2002 1:23 AM by [tone]

    JBoss3 to J2EE server

    [tone]

      In the dire attempt to get my Session beans to successfully work with my Enterpise beans, I tried JBoss to deploy my EJB's.

      After some minor modifications they work fine without a problem on JBoss 3.0 but when I try and use the same ejb jar in J2EE server I get errors in the verifier especially this one:


      ***********************************************************
      Test Name: tests.ejb.homeintf.remotehomeintf.RemoteHomeInterfaceRmiIIOP
      Test Assertion: Home interface methods have valid RMI-IIOP parameters test
      Detailed Messages:
      Error: [ org.ikeda.fortitude.people.MemberHome ] method was found, but does not have valid RMI-IIOP method parameters.
      ***********************************************************


      I'm using the build template supplied by the JBoss website which does all the auto gen stuff but even after this my classes and EJB descriptor are no different to the BMPs I have on the J2EE server.

      Here is the (auto-generated) code from the template:

      /*
      * Generated file - Do not edit!
      */
      package org.ikeda.fortitude.people;

      import java.lang.*;
      import java.sql.Timestamp;
      import java.sql.Connection;
      import java.sql.PreparedStatement;
      import java.sql.SQLException;
      import java.sql.ResultSet;
      import javax.sql.DataSource;
      import java.rmi.RemoteException;
      import javax.rmi.PortableRemoteObject;
      import javax.naming.NamingException;
      import javax.naming.InitialContext;
      import javax.naming.Context;
      import javax.ejb.EntityBean;
      import javax.ejb.EntityContext;
      import javax.ejb.EJBException;
      import javax.ejb.FinderException;
      import javax.ejb.CreateException;
      import javax.ejb.RemoveException;
      import javax.ejb.ObjectNotFoundException;
      import java.util.Vector;
      import java.util.ArrayList;
      import java.util.Collection;
      import org.ikeda.fortitude.javabeans.people.MemberFace;
      import org.ikeda.fortitude.exceptions.FortitudeException;
      import org.ikeda.fortitude.people.MemberPK;
      import org.ikeda.fortitude.utils.Identity;
      import org.ikeda.fortitude.utils.IdentityHome;

      /**
      * Home interface for Member. Lookup using {1}
      * @author XDOCLET 1.1.2
      * @version XDOCLET 1.1.2
      * @xdoclet-generated at 3/09/2002 09:13:44
      */
      public interface MemberHome
      extends javax.ejb.EJBHome
      {
      public static final String COMP_NAME="java:comp/env/ejb/Member";
      public static final String JNDI_NAME="ejb/Member";

      /**
      * Create a Member based on the MemberFace object
      * @param MemberFace of data
      * @return Primary key ref to new Member
      * @throws CreateException as per spec
      */
      public org.ikeda.fortitude.people.Member create(org.ikeda.fortitude.javabeans.people.MemberFace mf) throws java.rmi.RemoteException,javax.ejb.CreateException;

      /**
      * Standard findByPrimaryKey method
      * @param Primary key class
      * @throws FinderException */
      public org.ikeda.fortitude.people.Member findByPrimaryKey(org.ikeda.fortitude.people.MemberPK findId)
      throws java.rmi.RemoteException,javax.ejb.FinderException;

      }


      My primary key class is as follows:


      /*
      * Generated file - Do not edit!
      */
      package org.ikeda.fortitude.people;

      import java.lang.*;
      import java.sql.Timestamp;
      import java.sql.Connection;
      import java.sql.PreparedStatement;
      import java.sql.SQLException;
      import java.sql.ResultSet;
      import javax.sql.DataSource;
      import java.rmi.RemoteException;
      import javax.rmi.PortableRemoteObject;
      import javax.naming.NamingException;
      import javax.naming.InitialContext;
      import javax.naming.Context;
      import javax.ejb.EntityBean;
      import javax.ejb.EntityContext;
      import javax.ejb.EJBException;
      import javax.ejb.FinderException;
      import javax.ejb.CreateException;
      import javax.ejb.RemoveException;
      import javax.ejb.ObjectNotFoundException;
      import java.util.Vector;
      import java.util.ArrayList;
      import java.util.Collection;
      import org.ikeda.fortitude.javabeans.people.MemberFace;
      import org.ikeda.fortitude.exceptions.FortitudeException;
      import org.ikeda.fortitude.utils.Identity;
      import org.ikeda.fortitude.utils.IdentityHome;

      /**
      * Primary key for Member.
      * @author XDOCLET 1.1.2
      * @version XDOCLET 1.1.2
      * @xdoclet-generated at 3/09/2002 09:13:45
      */
      public class MemberPK
      extends java.lang.Object
      implements java.io.Serializable
      {
      static final long serialVersionUID = 3641773671093119471L;
      transient private int _hashCode = Integer.MIN_VALUE;
      transient private String value = null;

      public java.lang.Integer memb_id;

      public MemberPK()
      {
      }

      public MemberPK( java.lang.Integer memb_id )
      {
      this.memb_id = memb_id;
      }

      public java.lang.Integer getMemb_id()
      {
      return memb_id;
      }

      public void setMemb_id(java.lang.Integer memb_id)
      {
      this.memb_id = memb_id;
      }

      public int hashCode()
      {
      if( _hashCode == Integer.MIN_VALUE )
      {
      _hashCode += this.memb_id.hashCode();
      }

      return _hashCode;
      }

      public boolean equals(Object obj)
      {
      if( !(obj instanceof org.ikeda.fortitude.people.MemberPK) )
      return false;

      org.ikeda.fortitude.people.MemberPK pk = (org.ikeda.fortitude.people.MemberPK)obj;
      boolean eq = true;

      if( obj == null )
      {
      eq = false;
      }
      else
      {
      if( this.memb_id == null && ((org.ikeda.fortitude.people.MemberPK)obj).getMemb_id() == null )
      {
      eq = true;
      }
      else
      {
      if( this.memb_id == null || ((org.ikeda.fortitude.people.MemberPK)obj).getMemb_id() == null )
      {
      eq = false;
      }
      else
      {
      eq = eq && this.memb_id.equals( pk.memb_id );
      }
      }
      }

      return eq;
      }

      public String toString()
      {
      if( value == null )
      {
      value = "[.";
      value += this.memb_id+".";
      value += "]";
      }

      return value;
      }
      }



      Anyone had a similar problem or would have a solution? I can post more code if required.

      Regards,
      Anthony

        • 1. Re: JBoss3 to J2EE server
          [tone]

          Okay I found the problem, JBoss is adding the COMP_NAME and JNDI_NAME as static final variables to my home interfaces (J2EE Server doesn't like this!)

          Is there a way to switch this off when building my ejb-jars? It may be okay for JBoss but it's causing problems when trying to deploy on other servers.

          Regards,
          Anthony

          • 2. Re: JBoss3 to J2EE server
            [tone]

            Okay, found out how to do this as well. (overiding the templates).

            Anthony