I have problem in configuring JNDI lookup for ejb3.1 and weblogic 12c, jdk1.6
@Remote
public interface Bank{
public String accounts();
}
@Stateless(name="BankSession")
public class BankSessionBean implements Bank{
@Override
public String accounts() {
//////// }
ejb-jar.xml:
<enterprise-beans>
<session>
<display-name>BankSession</display-name>
<ejb-name>BankSession</ejb-name>
<business-remote>com.examples.Bank</business-remote>
<ejb-class>com.examples.BankSessionBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
</session>
<enterprise-beans>
weblogic-ejb-jar.xml:
<weblogic-enterprise-bean>
<ejb-name>BankSession</ejb-name>
<jndi-name>BankSession</jndi-name>
</weblogic-enterprise-bean>
client code:
當我開始使用JNDI查找使用此語法 的java:comp/env的/ EJB/BankSessionEJB 3.1中,WebLogic 12c中,Java 1.6的JNDI查找問題
它給予以下錯誤。
javax.naming.NameNotFoundException:嘗試查找'java:comp/env/ejb/BankSession'時未找到子上下文。
這裏ejbbean和客戶端代碼運行在不同的jvm上。
我應該用哪個Jndi?
- 的java:comp/env的/ EJB/BankSession」
- 的java:全球/的applicationName/MODULENAME/BankSession
- 的java:模塊/ BankSession
- 的java:應用程序/模塊名/ BankSession
java:comp/env/ejb/BankSession在ejb 3.0和oc4j服務器上工作正常。
當我遷移到ejb3.1和weblogic 12c時,它不起作用。
我甚至嘗試過不使用weblogic部署xml文件。遇到同樣的問題。
我應該如何在這裏配置我的Jndi?請幫忙,因爲我長期以來面臨這個問題。
在哪個部署描述符中,我需要爲java添加ejb ref:comp/env /?我已經在application-client.xml文件中有ejb ref。 \t EJB/BankInquirySession EJB-REF-名稱> 會話 EJB-REF型> com.examples.Bank BankInquirySession \t –
user3791049
什麼模塊/組件是你的bean的客戶端(ejb,servlet,java客戶端)?您需要添加對該模塊/組件的引用。 Application-client.xml是用於密集Java客戶端的描述符,所以它可能是錯誤的。 – Gas
好的。我重讀了你從應用程序客戶端執行的查詢。如果您從應用程序客戶端java:app/...執行查找可能無效。然後,我建議將ejb-ref ejb/BankInquirySession解析爲BankInquirySession並查找java:comp/env/BankInquirySession。 –