我用下面的Bean類工作:JNDI查找不與EJB 3.x的
@Stateless(name="UserBean", mappedName="UserBean")
@LocalBean
public class User implements UserRemote {
@PersistenceContext
private EntityManager em;
public User() {
}
public String login(String username, String password) {
Query query = em.createQuery("...");
return "xyz";
}
}
而且我的方法是
public String myMethod() {
try {
User user = (User) new InitialContext().lookup("UserBean");
return "xyz";
} catch (NamingException e) {
e.printStackTrace();
}
return null;
}
在這裏我得到一個
javax.naming.NameNotFoundException: Unable to resolve 'UserBean'. Resolved ''; remaining name 'UserBean'
JNDI查找名稱'UserBean'似乎是正確的。不知道問題是什麼。任何人都可以幫忙嗎?我已經在weblogic 12c上部署了我的應用程序,使用JPA 2.0和EJB 3.x
在此先感謝。
我與註釋爲只是「@無狀態」嘗試。 我的EAR名稱是Aahar_v.0.1,我的EJB模塊名稱是Aahar_EJB_v.0.1,所以我嘗試將JNDI名稱命名爲'java:Aahar_v.0.1/Aahar_EJB_v.0.1/User',而我仍然得到'javax.naming.NameNotFoundException :無法解析'java:global.Aahar_v.0.1.Aahar_EJB_v.0.1.User'。已解決'java:global.Aahar_v.0.1.Aahar_EJB_v.0.1';剩餘名稱'用戶' 我做錯了什麼? – Aditya 2013-02-18 16:09:26
您是否需要遠程接口,即是否需要在應用程序服務器之外進行查找?如果沒有,請刪除界面 – Andre 2013-02-18 16:44:26
問題是我正在使用遠程接口。 使用簡單的@Stateless註釋不映射名稱 下面的代碼工作: 新的InitialContext()查詢( 「java的:全球/項目名/模塊名/ BeanName FullyQualifiedNameOfRemoteInterface」)。 謝謝@Andre! – Aditya 2013-02-18 17:06:05