Я извиняюсь за мой английский.
Я пытаюсь использовать технологию EJB 3. У меня два приложения для ушей, одно из которых - веб-приложение, а другое - приложение с удаленными EJB-компонентами, использующее EJB 3.0. Я развернул их на том же сервере, Websphere 7, и они успешно запускаются. Мой тест вызывает EJBs через аннотацию @EJB и через «поиск», тогда у веб-приложения есть сервлет со ссылкой на EJB через аннотацию @EJB и другие ссылки на удаленном интерфейсе, т.е.
показать обычную копию в буфер обмена?
import org.icabanas.pruebaconcepto.dominio.Producto;
import org.icabanas.pruebaconcepto.facade.ProductoSessionFacade;
public class ProductoServlet extends HttpServlet {
@EJB(name="EJB/ProductoSessionFacade")
private ProductoSessionFacade productoSessionFacade;
private ProductoSessionFacade productoSessionFacadeJndi;
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Producto producto = getProductoFromRequest(req);
try{
System.out.println("INJECTION");
productoSessionFacade.alta(producto);
}
catch (Exception e) {
System.out.println("Error in INJECTION");
System.out.println(e.getMessage());
}
try{
System.out.println("JNDI");
productoSessionFacadeJndi = (ProductoSessionFacade) lookupJNDI("org.icabanas.pruebaconcepto.facade.ProductoSessionFacade");
productoSessionFacadeJndi.alta(producto);
}
catch (Exception e) {
System.out.println("Error in JNDI");
System.out.println(e.getMessage());
}
}
.......
}
У меня следующая проблема: Когда я запускаю приложения, все работает нормально, я получаю аннотацию EJB и через поиск jndi, но когда я перезапускаю или переиздаю веб-приложение, содержащее ухо, я получаю аннотированный EJB, и он работает нормально, но когда я пытаюсь получить EJB через поиск JNDI, я получаю следующую ошибку:
"org.icabanas.pruebaconcepto.facade._ProductoSessionFacade_Stub несовместим с org.icabanas.pruebaconcepto.facade.ProductoSessionFacade"
Есть идеи о том, что происходит?
Спасибо заранее!