Загадочный вызов удаленного EJB3 на WAS 7 - PullRequest
0 голосов
/ 04 января 2012

Я извиняюсь за мой английский.

Я пытаюсь использовать технологию 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"

Есть идеи о том, что происходит?

Спасибо заранее!

1 Ответ

0 голосов
/ 04 января 2012

Это на самом деле ошибка в WebSphere 7, которая была исправлена ​​в 7.0.0.17.У меня была такая же проблема с 7.0.0.15.Обходной путь должен также перезапустить приложение, которое содержит EJB.

...