Я развивающихся в Eclipse, Juno проект, который включает в себя EJB 3.1 и Dynamic Web Project.Доступ к EJB удаленно с другого сервера
EJB-класс называется FirstBean и Servlet называется EJB31ServletClient, я достиг только чтобы заставить его работать в одном сервере. Я прочитал, что мне нужно настроить InitialContext.lookup, но почти все примеры сделаны для приложений JavaSE.
То, что я хочу добиться:
Развертывание EJB Jar в сервере Glassfish 3.1.2.2 и развертывания динамических веб-проект в другом GlassFish сервере.
Вызовите в EJB31ServletClient метод sayHello().
Вот мой код:
EJB-очень простой Stateless Session Bean с No-интерфейс Просмотр что только показывает сообщение:
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
@Stateless
@LocalBean
public class FirstBean {
public FirstBean() {
}
public String sayHello() {
return "Hello";
}
}
Dynamic Web Project имеет только сервлет со следующим кодом:
import java.io.IOException;
import java.io.PrintWriter;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.theopentutorials.businesslogic.FirstBean;
@WebServlet("/EJB31ServletClient")
public class EJB31ServletClient extends HttpServlet {
private static final long serialVersionUID = 1L;
@EJB
FirstBean bean;
public EJB31ServletClient() {
super();
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println(bean.sayHello());
}
}
Я не знаю Glassfish и не могу ответить на вопрос, но локальный компонент по определению является локальным , и, следовательно, невозможно получить доступ удаленно. –