I am learning EJB 3 and trying some simple stuff on it.
I am using eclipse -> Luna Service Release 1 (4.4.1) with JBOSS AS 7.1.1 (final)
I created a simple EJB project in eclipse with name -> SalutationEJBProj. Under this project created a simple session, stateless Bean.
code:
package com.vipin.bean.session.stateless;
import javax.ejb.Stateless;
@Stateless(mappedName="SalutationBean")
public class SalutationBean implements SalutationBeanRemote {
public SalutationBean() {
}
@Override
public String getFormalSalutation(String name) {
return "Dear" + name;
}
@Override
public String getInfomalSalutation(String name) {
return "Hi" + name;
}
}
The Remote interface is:
package com.vipin.bean.session.stateless;
import javax.ejb.Remote;
@Remote
public interface SalutationBeanRemote {
public String getFormalSalutation(String name);
public String getInfomalSalutation(String name);
}
I am able to deploy it in Jboss AS 7.1.1 and here is the JNDI bindings output when i start the jboss:
java:global/SalutationEJBProj/SalutationBean!com.vipin.bean.session.stateless.SalutationBeanRemote
java:app/SalutationEJBProj/SalutationBean!com.vipin.bean.session.stateless.SalutationBeanRemote
java:module/SalutationBean!com.vipin.bean.session.stateless.SalutationBeanRemot
java:jboss/exported/SalutationEJBProj/SalutationBean!com.vipin.bean.session.stateless.SalutationBeanRemote
java:global/SalutationEJBProj/SalutationBean
java:app/SalutationEJBProj/SalutationBean
java:module/SalutationBean
Now, i want this ejb to be accessible by an external Servlet, for this I created a dynamic web project with name --> SalutationServletProj
Here is the code of the simple Servlet:
package com.vipin.servlet;
@WebServlet(urlPatterns = { "/SalutationServlet" })
public class SalutationServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@EJB
private SalutationBean salutationBean; // <-- How will this be accessible, this is in a different project, how do we import this?
public SalutationServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
My intention is to use @EJB annotation (or any other method) to get the instance of the EJB in the Servlet.
As these two are in different projects, how can i achieve this? I can't use like this in servlet:
import com.vipin.bean.session.stateless.SalutationBean
1) What are the files from EJB project that i have to copy into servlet project.
2) Will it work as @EJB annotation or do i need to do JNDI lookup? (Because the servlet is remote).
3) Where can i find the classes/libraries generated in jboss?
Any help highly appreciated.
Aucun commentaire:
Enregistrer un commentaire