PDA

Ver la Versión Completa : deployment descriptor


Aileen
08-07-2004, 22:40:38
Hola!!!
Soy nueva trabajando en Java, y estoy haciendo un EntityBean, ya hice la clase del bean, la home interface y la component interface, y ahorita estoy en el proceso del deploy. Estoy utilizando una herramienta de sun para realizarlo, pero me da un error de còdigo que EJB-QL, el problema es que no sè que es lo que debo colocar dentro del IN para que me devuelva un objeto de la colecciòn, y luego poder comparar los campos con el paràmetro. Les envìo el còdigo de mis clases y las interfaces, y el error que me sale en el deployment

Cualquier ayuda se los agradecerìa mucho:(

Aileen

Este es el codigo de la clase...

package packCustomer;
import javax.ejb.*;
import packCustomer.*;
import javax.naming.*;
import java.util.*;
public abstract class CustomerBean implements EntityBean{
private EntityContext context;

public int ejbCreate (int id, String c, String a, int p, int f, String gm, String fm, String itm, String cm){
this.setId(id);
this.setComp(c);
this.setAdd(a);
this.setPhon(p);
this.setFa(f);
this.setGeneralMan(gm);
this.setFinancialMan(fm);
this.setITMan(itm);
this.setComercialMan(cm);
return id;
}

public void ejbPostCreate(int id, String c, String a, int p, int f, String gm, String fm, String itm, String cm){
try{
InitialContext ctx = new InitialContext();
}catch(Exception ex){
}
}

//abstract setters
public abstract void setId(int id);
public abstract void setComp(String comp);
public abstract void setAdd(String add);
public abstract void setPhon(int phon);
public abstract void setFa(int fa);
public abstract void setGeneralMan(String gm);
public abstract void setFinancialMan(String fm);
public abstract void setITMan(String itm);
public abstract void setComercialMan(String cm);

//abstract getters
public abstract int getId();
public abstract String getComp();
public abstract String getAdd();
public abstract int getPhon();
public abstract int getFa();
public abstract String getGeneralMan();
public abstract String getFinancialMan();
public abstract String getComercialMan();
public abstract String getITMan();
//setters
public void setidCliente (int id){
this.setId(id);
}
public void setCompany(String c){
this.setComp(c);
}
public void setAddress(String a){
this.setAdd(a);
}
public void setPhone(int p){
this.setPhon(p);
}
public void setFax(int f){
this.setFa(f);
}
public void setGeneralManager(String gm){
this.setGeneralMan(gm);
}
public void setFinancialManager(String fm){
this.setFinancialMan(fm);
}
public void setITManager(String itm){
this.setITMan(itm);
}
public void setComercialManager(String cm){
this.setComercialMan(cm);
}

//getters
public String getCompany(){
return this.getComp();
}
public String getAddress(){
return this.getAdd();
}
public int getPhone(){
return this.getPhon();
}
public int getFax(){
return this.getFa();
}
public String getGeneralManager(){
return this.getGeneralMan();
}
public String getFinancialManager(){
return this.getFinancialMan();
}
public String getITManager(){
return this.getITMan();
}
public String getComercialManager(){
return this.getComercialMan();
}
//container callbacks from EntityBean interface
public void setEntityContext(EntityContext ctx){
context = ctx;
}
public void unsetEntityContext(){
}
public void ejbLoad(){
}
public void ejbStore(){
}
public void ejbActivate(){
}
public void ejbPassivate(){
}
public void ejbRemove(){
}

public String ejbHomeListAllCustomers(){
String list = null;
try{
Collection c = ejbSelectGetAllCustomers();
Iterator ita = c.iterator();
while (ita.hasNext()){
Customer customer = (Customer)ita.next();
list += ""+customer.getCompany();
}
}catch(Exception ex){
return ("No se encontro ningun cliente.");
}return list;
}

public abstract Collection ejbSelectGetAllCustomers() throws FinderException;

}


Este es el codigo de la Component Interface

package packCustomer;
import javax.ejb.*;
import packCustomer.*;
public interface Customer extends EJBLocalObject{
//setters
public void setidCliente (int id);
public void setCompany(String c);
public void setAddress(String a);
public void setPhone(int p);
public void setFax(int f);
public void setGeneralManager(String gm);
public void setFinancialManager(String fm);
public void setITManager(String itm);
public void setComercialManager(String cm);

//getters
public int getId();
public String getCompany();
public String getAddress();
public int getPhone();
public int getFax();
public String getGeneralManager();
public String getFinancialManager();
public String getITManager();
public String getComercialManager();
}


Este es el codigo de la Home Interface

package packCustomer;
import javax.ejb.*;
import java.util.*;
import packCustomer.*;
public interface CustomerHome extends EJBLocalHome{
public Customer create (int id, String c, String a, int p, int f, String gm, String fm, String itm, String cm)throws CreateException;

public Customer findByPrimaryKey (int key)throws FinderException;

public Collection findByName(String name)throws FinderException;

public String listAllCustomers() throws FinderException;

}


...Y este es el error que sale en el deploy...

Error: [ SELECT OBJECT (d) FROM CustomerSchema d, IN (d.Comp) m WHERE m.Company = ?1 ] has parsing error(s)
Exception occured : [Encountered "IN ( d . Comp" at line 1, column 24.
Was expecting one of:
"AbstractSchemaName" ...
"IN" "(" "IdentificationVar" "." "SingleValuedCmrField" ...
"IN" "(" "IdentificationVar" "." "CollectionValuedCmrField" ...

EJB QL statement : 'SELECT OBJECT (d) FROM CustomerSchema d, IN (d.Comp) m WHERE m.Company = ?1'
EJB QL method : public abstract java.util.Collection packCustomer.CustomerHome.findByName(java.lang.String) throws javax.ejb.FinderException
]