我對我的英語道歉。Misterious調用遠程EJB3上的WAS 7
我在嘗試使用EJB 3技術。我有兩個應用程序,其中一個是Web應用程序,另一個是使用EJB 3.0的遠程EJB應用程序。我將它們部署在同一臺服務器Websphere 7中,並且它們會成功啓動。我的測試是通過@EJB註釋和「查找」來調用EJB,然後,Web應用程序通過@EJB註釋在EJB上引用一個Servlet,並在遠程接口處提供其他引用,即:
view plaincopy to 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 annoted並通過JNDI查找,但是當我重新啓動或重新發布包含Web應用程序的耳朵,我得到的EJB annonted和它工作正常,但是當我試圖讓JNDI查找EJB的我得到以下錯誤:
「org.icabanas.pruebaconcepto.facade._ProductoSessionFacade_Stub不符合org.icabanas.pruebaconcepto.facade.ProductoSessionFacade」
關於發生什麼的任何想法?
感謝先進!
請包含異常堆棧跟蹤。看起來您錯過了對PortableRemoteObject.narrow的調用,但是您或服務器是否忘記了這一點並不清楚。 – 2012-01-04 14:45:52