duvida com EJB basico  XML
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Autor Mensagem
muldon
JavaTeenager
[Avatar]

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();

out.println("<html><head><title>");
out.println("Fibonaci Computation");
out.println("</title></head>");
out.println("<body>");

out.println("<h1>");
out.println("Fibonaci Computation");
out.println("</h1>");

try {
Fibo bean = home.create();
int limit = 0;
String value = request.getParameter("limit");
double[] result = bean.compute(value);
bean.remove();

out.println("<p>");
out.print("The ");
out.print(limit);
out.print(" first Fibonacci numbers ");

for (int i = 0; i < result.length; i++) {
out.println("<br>");
out.println(i);
out.println(" : ");
out.println(result[i]);
}

out.println("</p>");
} catch (Exception e) {
out.println(e.getMessage());
e.printStackTrace(out);
} finally {
out.println("</body></html>");
out.close();
}
return null;
}



-Interface FiboHome

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

}

/**
* Default create method
*
* @throws CreateException
* @ejb.create-method
*/
public void ejbCreate() throws CreateException {
// 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());



Sun Certified Java Programmer 5
deadlock
JavaBaby
[Avatar]

Membro desde: 27/04/2006 07:17:51
Mensagens: 81
Localização: Fortaleza-CE
Offline

muldon wrote: java.lang.NoClassDefFoundError: tutorial/dao/hibernate/HibernateDepartamentoDAO


essa classe ta no teu CLASSPATH????

"Monstros existem. Fantasmas também. Eles vivem dentro de nós. E às vezes, eles vencem."
Stephen King
[Email] [MSN]
muldon
JavaTeenager
[Avatar]

Membro desde: 16/05/2006 14:06:03
Mensagens: 174
Offline

esta no build path. Estou usando eclipse. Preciso setar no classpath de variavel de ambiente para que o jboss possa enxerga-la ?

Sun Certified Java Programmer 5
 
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Ir para:   
Powered by JForum 2.1.8 © JForum Team