Hi, ich versuch grad mein Glück daran eine Stateless Session Bean zu deployen. Ich verwende JBoss 4.0.3
Folgende Bean soll deployed werden:
Interface:
Bean:
Die Bean soll dann in einem Servlet (zu Testzwecken) aufgerufen werden:
Ich verpack dann die Webapplikation und die EJB in eine ear und ich schätz das funktioniert auch.
EAR - Struktur:
- META-INF
-- application.xml
- business.ejb3
- marfan.war
Das Servlet kann ich ohne Probleme aufrufen allerdings bekomme ich eine Nullpointerexception beim Lookup der Bean mit der Exception: javax.naming.NameNotFoundException: umit.swpg.server.ejb.Calculator not bound
Das kann jetzt wahrscheinlich alles mögliche sein. Im konkreten hab ich nur eine Frage. Ich kompiliere die EJB in Eclipse mit JDK1.5. Die annotation @Stateless wird allerdings rot unterwellt mit der Meldung: "Stateless cannot be resolved to a type". Jetzt kenn ich mich nicht wirklich aus wie der Compiler solche Annotations handhabt. Muss ich irgendeine Bibliothek importieren damit er beim Compilieren die Annotation richtig compiliert und somit die EJB erst richtig deployed werden kann oder ist das egal und das kann nicht der Grund für den Fehler sein?
Folgende Bean soll deployed werden:
Interface:
Code:
package umit.swpg.server.ejb;
public interface Calculator {
public double calculate(double first, double second);
}
Bean:
Code:
package umit.swpg.server.ejb;
@Stateless
public class CalculatorBean implements Calculator {
public double calculate(double first, double second) {
return first + second;
}
}
Die Bean soll dann in einem Servlet (zu Testzwecken) aufgerufen werden:
Code:
public class Login extends HttpServlet {
public void doGet(HttpServletRequest rq, HttpServletResponse rs)
throws IOException, ServletException {
rs.getWriter().write("<H1>Hallo</H1>");
Calculator cal = null;
try {
InitialContext ctx = new InitialContext();
cal = (Calculator) ctx.lookup(
Calculator.class.getName());
} catch (Exception e) {
e.printStackTrace ();
}
rs.getWriter().write("<H1>" + cal.calculate(3, 3) + "<H1>");
}
}
Ich verpack dann die Webapplikation und die EJB in eine ear und ich schätz das funktioniert auch.
EAR - Struktur:
- META-INF
-- application.xml
- business.ejb3
- marfan.war
Das Servlet kann ich ohne Probleme aufrufen allerdings bekomme ich eine Nullpointerexception beim Lookup der Bean mit der Exception: javax.naming.NameNotFoundException: umit.swpg.server.ejb.Calculator not bound
Das kann jetzt wahrscheinlich alles mögliche sein. Im konkreten hab ich nur eine Frage. Ich kompiliere die EJB in Eclipse mit JDK1.5. Die annotation @Stateless wird allerdings rot unterwellt mit der Meldung: "Stateless cannot be resolved to a type". Jetzt kenn ich mich nicht wirklich aus wie der Compiler solche Annotations handhabt. Muss ich irgendeine Bibliothek importieren damit er beim Compilieren die Annotation richtig compiliert und somit die EJB erst richtig deployed werden kann oder ist das egal und das kann nicht der Grund für den Fehler sein?