從使用本地接口的戰爭中訪問ejb駐留在ear文件中是否可能?
兩者都部署在同一個應用程序服務器下。通過本地接口從戰爭中訪問ejb
的EJB:現在
@Stateless(name="FirstDemoEJB",mappedName = "FirstDemoEJB/Local")
public class FirstSessionBean implements FirstSessionBeanRemote, FirstSessionBeanLocal {
}
,在測試的servlet(戰爭):
InitialContext context = new InitialContext();
Object ob = context.lookup("java:comp/env/FirstDemoEJB/Local");
失敗的:
javax.naming.NameNotFoundException:在試圖查找 comp/env/FirstDemoEJB/Local in/app/webapp/FirstWebEJBTest/12292093。
但遠程查找工作正常:
Object ob = context.lookup("FirstDemoEJB/Local#org.weblogic.FirstSessionBeanRemote");
在WebLogic中(據我所知),你可以在那裏使用'RemoteInterface'。容器檢查它是否真的是一個'LocalInterface'並儘可能地將它作爲一個使用。規格不允許相反。 –
我知道JBoss AS7在這方面遇到了一些麻煩。只是提到它來表明這可能是他們最終的問題。 – keyser