[jboss-user] [EJB 3.0] - EJB 3.0 AND JBOSS 4.0.4 G.A

priyavijayan1 do-not-reply at jboss.com
Sun Dec 24 05:25:58 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=3996098#3996098

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



More information about the jboss-user mailing list