我正在尝试使用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不兼容”
关于发生了什么的任何想法?
先谢谢!
答案 0 :(得分:0)
这实际上是我认为在7.0.0.17中修复的WebSphere 7中的一个错误。我在7.0.0.15中遇到了同样的问题。解决方法是还要重新启动包含EJB的应用程序。