如何在Storm jar中加载jndi绑定?

mic*_*ode 6 java jndi initial-context apache-storm

我们有一个项目正在使用Storm,因此我们的代码必须打包在一个jar中.我们以前用作com.sun.jndi.fscontext.RefFSContextFactory我们的InitialContextFactory实现jndicontext从系统配置目录中的文件加载绑定classpath(工作正常).但是,当尝试使用此工厂从jar中加载上下文时,我们得到以下内容:

javax.naming.InvalidNameException: unknown protocol: jar
     at com.sun.jndi.fscontext.FScontextFactory.getFileNameFromURLSTring(FSContextFactory.java:139)
     at com.sun.jndi.fscontext.RefFSContextFactory.createContext(RefFSContextFactory.java:31)
Run Code Online (Sandbox Code Playgroud)

这是由于工厂尝试从以下URL加载jdni上下文:

"罐子:文件:/mount/storm-dir/data/storm.jar/jndicontext"

这是一个有效的URL,但工厂不了解如何打开jar.有没有实现javax.naming.spi.InitialContextFactory呢?或者有一种方法可以解决这个问题,并添加一个配置目录到Storm的classpath