Membro desde: 16/05/2006 14:06:03
Mensagens: 174
Offline
Eai pessoal blz ?
Tentei aqui implementar meu primeiro EJB, e estou tendo o seguinte problema: quando eu tento chamar qualquer classe de meu EJB, tenho uma excessao ( erro no caso ) do tipo java.lang.NoClassDefFoundError.
Alguem poderia me dizer se é necessaria alguma configuracao especial para que meu EJB possa enxergar outras classes ?
Excessao:
15:32:24,562 ERROR [LogInterceptor] Unexpected Error in method: public abstract double[] tutorial.interfaces.Fibo.compute(int) throws java.rmi.RemoteException
java.lang.NoClassDefFoundError: tutorial/dao/hibernate/HibernateDepartamentoDAO
at tutorial.ejb.FiboBean.compute(FiboBean.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
...
- Metodo na classe action que instacia a home:
public ActionForward fibo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
Context context = new InitialContext();
Object ref = context.lookup("ejb/Fibo");
home = (FiboHome) PortableRemoteObject.narrow(ref, FiboHome.class);
response.setContentType("text/html");
PrintWriter out = response.getWriter();
public interface FiboHome
extends javax.ejb.EJBHome
{
public static final String COMP_NAME="java:comp/env/ejb/Fibo";
public static final String JNDI_NAME="ejb/Fibo";
public tutorial.interfaces.Fibo create()
throws javax.ejb.CreateException,java.rmi.RemoteException;
}
-Interface remota
public interface Fibo
extends javax.ejb.EJBObject
{
/**
* Business method
*/
public double[] compute( int number )
throws java.rmi.RemoteException;
}
-Bean
/**
* @ejb.bean name="Fibo"
* display-name="Name for Fibo"
* description="Description for Fibo"
* jndi-name="ejb/Fibo"
* type="Stateless"
* view-type="remote"
*/
public class FiboBean implements SessionBean {
public FiboBean() {
super();
// TODO Auto-generated constructor stub
}
public void setSessionContext(SessionContext ctx) throws EJBException,
RemoteException {
// TODO Auto-generated method stub
}
public void ejbRemove() throws EJBException, RemoteException {
// TODO Auto-generated method stub
}
public void ejbActivate() throws EJBException, RemoteException {
// TODO Auto-generated method stub
}
public void ejbPassivate() throws EJBException, RemoteException {
// TODO Auto-generated method stub
/**
* Business method
* @ejb.interface-method view-type = "remote"
*/
public double[] compute(int number) {
if (number < 0) {
throw new EJBException("Argument should be positive");
}
HibernateDepartamentoDAO h = new HibernateDepartamentoDAO();
h.insert(new Departamento());
double[] suite = new double[number + 1];
suite[0] = 0;
if (number == 0) {
return suite;
}
suite[1] = 1;
for (int i = 2; i <= number; i++) {
suite[i] = suite[i - 1] + suite[i - 2];
}
return suite;
}
}
Ou seja, o erro da nas linhas
HibernateDepartamentoDAO h = new HibernateDepartamentoDAO();
h.insert(new Departamento());