[jboss-user] [EJB/JBoss] - problem with jboss-EJB-3.0_RC9-FD and jboss-4.0.4.GA

priyavijayan1 do-not-reply at jboss.com
Sun Dec 24 02:45:59 EST 2006


Hi,

   I am having a problem with EJB 3.0 . I am using 
EJB-3.0_RC9-FD 
jboss-4.0.4.GA 
jdk 1.5
ant 1.6.5
I am using the hypersonic database of jboss and I want to create  two tables in the database Department and Emplyee.


The code for client.java

package com.abcd.EJB3.application;

import com.infosys.EJB3.application.FacadeRemote;
import javax.naming.InitialContext;
import java.sql.Timestamp;

public class client
{
   public static void main(String[] args)
   {
 	try
 	{
 	  InitialContext ctx = new InitialContext();
      FacadeRemote lFacadeRemote = (FacadeRemote) ctx.lookup(FacadeRemote.class.getName());

	  lFacadeRemote.createDepartment("Finance");
	  lFacadeRemote.createDepartment("Administration");
	  lFacadeRemote.createDepartment("Sales");

	  lFacadeRemote.assignEmployeeToDepartment(new Long(1),"Brijesh",31,"M");
	  lFacadeRemote.assignEmployeeToDepartment(new Long(1),"xxxx",31,"M");
	  lFacadeRemote.assignEmployeeToDepartment(new Long(2),"yyyy",31,"M");

 	}
 	catch(Exception ex)
 	{
		System.out.println(ex);
	}
   }
}



The code for department.java

package com.abcd.EJB3.application;

import java.util.ArrayList;
import java.util.Collection;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name = "DEPARTMENT")
public class Department implements java.io.Serializable
{
   private Long id;
   private String lsName;
   private Collection lEmployees;

   //@Id(generate = GeneratorType.AUTO)
   @Id @GeneratedValue(strategy=GenerationType.AUTO)   
   
   public Long getId()
   {
      return id;
   }

   public void setId(Long id)
   {
      this.id = id;
   }

   @Column(name = "NAME")
   public String getName()
   {
      return lsName;
   }

   public void setName(String asName)
   {
      this.lsName = asName;
   }

   @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy="department")
   public Collection getEmployees()
   {
      return lEmployees;
   }

   public void setEmployees(Collection aEmployees)
   {
      this.lEmployees = aEmployees;
   }

   public void addEmployee(String asName,int aiAge, String asSex)
   {
	   if(lEmployees== null)
	   		lEmployees = new ArrayList();

	   Employee lEmployee = new Employee();
	   lEmployee.setName(asName);
	   lEmployee.setAge(aiAge);
	   lEmployee.setSex(asSex);
	   lEmployee.setDepartment(this);
	   lEmployees.add(lEmployee);

	   setEmployees(lEmployees);
   }
}


the code for Employee.java

package com.abcd.EJB3.application;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Column;
import javax.persistence.Table;
import javax.persistence.FetchType;
import javax.persistence.ManyToMany;
import javax.persistence.CascadeType;
import javax.persistence.PostPersist;


import java.util.Set;

//@Entity
public class Employee implements java.io.Serializable
{
   private Long id;
   private String lsName;
   private int liAge;
   private String lsSex;
   private Department department;

   public Employee()
   {
   }

   //@Id(generate = GeneratorType.IDENTITY)
 //  @Id @GeneratedValue(strategy=GenerationType.IDENTITY) 
   public Long getId()
   {
   	  return id;
   }

   public void setId(Long id)
   {
      this.id = id;
   }

 //  @Column(name = "NAME")
   public String getName()
   {
      return lsName;
   }

   public void setName(String asName)
   {
      this.lsName = asName;
   }

//   @Column(name = "AGE")
   public int getAge()
   {
      return liAge;
   }

   public void setAge(int liAge)
   {
      this.liAge = liAge;
   }

 //  @Column(name = "SEX")
   public String getSex()
   {
      return lsSex;
   }

   public void setSex(String lsSex)
   {
      this.lsSex = lsSex;
   }

 //  @ManyToOne
  // @JoinColumn(name="DEPARTMENT_ID")
   public Department getDepartment()
   {
      return department;
   }

   public void setDepartment(Department aDepartment)
   {
      this.department = aDepartment;
   }

 //  @PostPersist
   public void samplePostPersist()
   {
      System.out.println("Added Employee having name = "+ this.getName() +" and Age = "+ this.getAge());
   }
}


code for FacadeBean 

package com.abcd.EJB3.application;

import javax.ejb.Stateless;
import javax.ejb.Remote;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import com.infosys.EJB3.application.Department;
import com.infosys.EJB3.application.Employee;

import java.util.Set;

@Stateless
public class FacadeBean implements FacadeRemote
{
   @PersistenceContext
   private EntityManager manager;

   public void createDepartment(String deptName)
   {
	    Department department = new Department();

		department.setName(deptName);

		manager.persist(department);

   }

   public void assignEmployeeToDepartment(Long id, String name, int age, String sex)
   {
	    Department department = searchDepartment(id);

		department.addEmployee(name, age, sex);

		manager.persist(department);
   }

   public Department searchDepartment(Long id)
   {
		return manager.find(Department.class,id);
   }

}


code for FacadeRemote


package com.abcd.EJB3.application;

import javax.ejb.Remote;

@Remote
public interface FacadeRemote
{
	public void createDepartment(String deptName);
	public Department searchDepartment(Long id);
    public void assignEmployeeToDepartment(Long id, String name, int age, String sex);
}



now I have compiled the code and deployed it. But when I try to run the code I get the following error:


NameNotFoundException  ----- FacadeRemote not bound.

I think its something related to JNDI binding.. but here since I am using EJB 3.0, i dont have to use ejb-jar.xml, but then how does this happens?? what should I do... Please help....

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

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3996092



More information about the jboss-user mailing list