神秘调用WAS 7上的远程EJB3

时间:2012-01-04 12:08:53

标签: ejb-3.0 websphere-7

我对我的英语道歉。

我正在尝试使用EJB 3技术。我有两个应用程序,其中一个是Web应用程序,另一个是使用EJB 3.0的远程EJB应用程序。我将它们部署在同一台服务器Websphere 7中,并且它们成功启动。我的测试是通过@EJB注释和“查找”调用EJB,然后,Web应用程序有一个Servlet,它通过@EJB注释在EJB上引用,在远程接口上引用其他引用,即

查看plaincopy到clipboardprint?

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查找,但是当我重新启动或重新发布包含Web应用程序的耳朵时,我得到了EJB已经取消并且它工作正常,但是当我尝试通过JNDI查找获取EJB时,我收到以下错误:

“org.icabanas.pruebaconcepto.facade._ProductoSessionFacade_Stub与org.icabanas.pruebaconcepto.facade.ProductoSessionFacade不兼容”

关于发生了什么的任何想法?

先谢谢!

1 个答案:

答案 0 :(得分:0)

这实际上是我认为在7.0.0.17中修复的WebSphere 7中的一个错误。我在7.0.0.15中遇到了同样的问题。解决方法是还要重新启动包含EJB的应用程序。