【发布时间】:2012-01-04 12:08:53
【问题描述】:
我为我的英语道歉。
我正在尝试使用 EJB 3 技术。我有两个ears 应用程序,一个是Web 应用程序,另一个是带有远程EJB 的应用程序,使用EJB 3.0。我将它们部署在同一台服务器 Websphere 7 中,它们成功启动。我的测试是通过@EJB注解和“查找”调用EJB,然后,Web应用程序有一个Servlet,通过@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());
}
}
.......
}
我有以下问题:当我启动应用程序时一切正常,我通过 jndi 查找获得了 EJB 注释,但是当我重新启动或重新发布包含 Web 应用程序的 ear 时,我得到了 EJB 注释并且它工作正常,但是当我尝试通过 JNDI 查找获取 EJB 时,出现以下错误:
“org.icabanas.pruebaconcepto.facade._ProductoSessionFacade_Stub 与 org.icabanas.pruebaconcepto.facade.ProductoSessionFacade 不兼容”
知道会发生什么吗?
提前致谢!
【问题讨论】:
-
请包含异常堆栈跟踪。您似乎错过了对 PortableRemoteObject.narrow 的调用,但不清楚是您还是服务器忘记了调用。
标签: ejb-3.0 websphere-7