Maven経由で.warファイルにデプロイするJavaサーブレットプロジェクトがあります。これは、Tomcat サーブレット コンテナーで実行されます。私は Wordnet を使用しているので (正確には、この API を使用します: http://extjwnl.sourceforge.net/ )、いわゆる「dictionary_path」の値を保持する file_properties.xml ファイルがあります。この値は、保存された辞書へのパスを保持する必要があります。ローカル マシンでテストしたところ、次の値はもちろん機能しました: "C:\Users\XY\Documents\NetBeansProjects\project-name\src\main\resources\dict\"
war ファイルにデプロイして tomcat で実行すると、このパスはもちろん機能しなくなります。XML に値を正しく入力するにはどうすればよいですか? ターゲット フォルダは、「\WEB-INF\classes」フォルダ内の war ファイルにあります。
xml は現在次のようになっています。
<param name="dictionary_path" value="C:\Users\username\Documents\NetBeansProjects\projectname\src\main\resources\dict\"/>
解決策: 回避策でこれを解決しました: XML ファイルはもう必要ありません。代わりに、パスを指定して辞書をインスタンス化します。
String dictPath = WordNetDictionary.class.getResource("/dict").toExternalForm();
//trim dictPath here depending on the OS
this.dictionary = Dictionary.getFileBackedInstance(dictPath);