我们有一个项目正在使用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)
这是因为工厂试图从以下url加载jdni上下文:
"jar:file:/mount/storm dir/data/storm.jar/“上下文”
这是一个有效的url,但是工厂不知道如何打开jar。是否实施了 javax.naming.spi.InitialContextFactory
是吗?或者,有没有一种方法可以解决这个问题,并添加一个配置目录到storm的 classpath
?
暂无答案!
目前还没有任何答案,快来回答吧!