的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 –