的EJB按照java ee Tutorial可以通過jndi
訪問EJB
:訪問JNDI查找
java:global[/application name]/module name/enterprise bean name[/interface name]
我使用Jboss
應用服務器,當我嘗試訪問EJB
命名FirstBean
它實現吶接口CustomerData
用:
bean = (CustomerData) context.lookup("java:global/EJBTest/FirstBean/CustomerData");
拋出異常:
Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
如果我添加一行:
properties.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
它拋出一個其他異常:
No provider URL configured for connection
我已經實現使用Jboss
說明書中對其進行訪問:
bean = (CustomerData) context.lookup("ejb:/EJBTest//FirstBean!com.al.ejbtest.CustomerData");
如何使用標準的java ee speci來訪問它特別是只有斜槓而不是帶有exlamation標記?是否需要設置任何環境變量?
什麼'Jboss'版本您使用? – Ilya
jboss-as-7.1.1.final – arjacsoh
從哪裏嘗試訪問EJB?如果您使用遠程ejb客戶端進行嘗試,則需要檢查該客戶端的文檔。例如https://docs.jboss.org/author/display/AS71/Remote+EJB+invocations+via+JNDI+-+EJB+client+API+or+remote-naming+project?_sscc=t –