我正在尝试以下教程,该教程创建一个简单的EJB,然后通过Java SE客户端进行访问: http://www.tutorialspoint.com/ejb/ejb_create_application.htm
本教程使用ant但我正在使用maven。现在,在我的客户端,我在创建初始上下文时收到以下错误:
javax.naming.NoInitialContextException: Cannot instantiate class:
org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException:
org.jnp.interfaces.NamingContextFactory]
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:674)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307)
at javax.naming.InitialContext.init(InitialContext.java:242)
at javax.naming.InitialContext.<init>(InitialContext.java:216)
at EJBDriver.main(EJBDriver.java:21)
我已将以下依赖项添加到我的pom.xml中:
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee-6.0</artifactId>
<groupId>org.jboss.as</groupId>
<artifactId>jboss-as-ejb-client-bom</artifactId>
最后,jndi属性:
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost:4447
如何解决这个问题?
答案 0 :(得分:0)
我解决了以下问题
1-如果EJB类位于不同的项目中,则需要将包含EJB类的项目添加到包含客户端的项目的类路径中。对于Eclipse:
右键单击项目 - &gt;构建路径 - >配置构建路径 - &gt;项目标签 - &gt;添加 - >选择所需的项目 - >确定 - >确定
2-需要将jboss-client.jar文件添加到EJB客户端项目的类路径中。
右键单击项目 - &gt;构建路径 - >配置构建路径 - &gt;项目标签 - &gt;图书馆 - &gt;添加外部JAR 浏览到jboss-client.jar文件(在Windows中,它位于JBoss_Installation / bin / client中) 选择文件,然后单击“确定”两次。
答案 1 :(得分:0)
jboss 6应该使用以下属性:
naming factory= org.jboss.naming.remote.client.InitialContextFactory
provider url= remote://localhost:4447