Storm を使用するように移行するプロジェクトがあるため、コードを jar にパッケージ化する必要があります。以前は、システム構成ディレクトリ内のファイルからバインディングをロードする実装com.sun.jndi.fscontext.RefFSContextFactory
として使用していました(正常に動作しました)。ただし、このファクトリを使用して jar 内からコンテキストをロードしようとすると、次のようになります。InitialContextFactory
jndicontext
classpath
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!/jndicontext"
これは有効な URL ですが、ファクトリは jar を開く方法を認識していません。その実装はありjavax.naming.spi.InitialContextFactory
ますか?あるいは、この問題を回避して構成ディレクトリを Storm に追加する方法はありclasspath
ますか?