我需要在没有 J2EE 容器开销的情况下运行 JNDI 提供程序。我已尝试按照本文中的说明进行操作,该文章准确地描述了(第 3 页)我想要做什么。不幸的是,这些方向都失败了。我也必须将 jboss-common.jar 添加到我的类路径中。一旦我这样做了,我会得到一个堆栈跟踪:
$ java org.jnp.server.Main
0 [main] DEBUG
org.jboss.naming.Naming - Creating
NamingServer stub, theServer=null,rmiPort=0,clientSocketFactory=null,serverSocketFactory=org.jboss.net.sockets.DefaultSocketFactory@ad093076[bindAddress=null]
Exception in thread "main"
java.lang.NullPointerException
at org.jnp.server.Main.getNamingInstance(Main.java:301)
at org.jnp.server.Main.initJnpInvoker(Main.java:354)
at org.jnp.server.Main.start(Main.java:316)
at org.jnp.server.Main.main(Main.java:104)
我希望能够完成这项工作,但我也愿意向其他轻量级独立 JNDI 提供者开放。所有这一切都是为了使 ActiveMQ 工作,如果有人可以建议另一个轻量级 JMS 提供程序,它可以在 vm 之外很好地工作,客户端所在的客户端不需要一个完整的应用程序服务器也可以工作。