0 Replies Latest reply on Nov 14, 2005 3:57 PM by David

    Remote acces on an Entity

    David Newbie

      I use a client to connect to JBoss 4.0.3SP1 using sun jdk 1.5.

      I retrieve a stateless bean and it's ok (stateless is a jboss proxy) but when

      I try to create an entity using this bean manager, a ClassNotFoundException is thrown because the returned object is not a proxy, it's the entity bean class, not the remote interface.

      The interfaces :

      public interface ICityManager extends IDataManager<ICity> {
       public ICity create(String name, String code, String country) throws RemoteException;
      public interface ICity extends INamed {
       public String getCode() throws RemoteException;
       public void setCode(String s) throws RemoteException;
       public String getCountry() throws RemoteException;
       public void setCountry(String o) throws RemoteException;

      The concrete classes :

      public class CityManagerBean extends AbstractManagerBean<ICity> implements ICityManager {
       public ICity create(String name, String code, String country) throws RemoteException {
       ICity o = new City();
       return o;
      @Entity(access = AccessType.PROPERTY)
      @Table(name = "CITIES", uniqueConstraints = { @UniqueConstraint( columnNames = { INamed.NAME, ICity.CODE, ICity.COUNTRY }
      ) } )
      @Inheritance(strategy = InheritanceType.SINGLE_TABLE)
      public class City extends AbstractNamedEntity implements ICity {
       private String code;
       private String country;
       public City() { }
       @Id(generate = GeneratorType.IDENTITY)
       @Column(name = ID, nullable = false, unique = true)
       public long getPrimaryKey() { return id; }

      The client :

      public static void main(String[] args) {
       try {
       if (System.getSecurityManager() == null) {
       System.setSecurityManager(new AllPermissionsManager());
       DataManagerFactory factory = DataManagerFactory.getInstance();
       ICityManager cityManager = factory.get(ICityManager.class);
       System.out.print("city creation =>");
       System.out.println("cities : " + cityManager.size());
       ICity city = cityManager.create("Paris", "75000", "fra"); //ClassNotFoundException appears here

      I don't understand, I need to put my concrete entity class on the class path of the client or it's not necessary (proxy or not) ?