2016-10-10 5 views
1

依存関係が追加されたSpringブートアプリケーションを開発中です。この依存関係にはspring.xmlファイルがあります。私はこのXMLファイルをスキャンし、Beanも作成しています。 Beanの1つがクラスパスのhibernate.propertiesを探しています。このプロパティファイルを自分のアプリケーションのresourcesフォルダの下に追加しました。しかし、私はまだ以下の例外が表示されます。私が逃していることを教えてください。Spring - java.io.FileNotFoundException:クラスパスリソースが存在しないためオープンできません

<util:properties id="HibernateProperties" location="classpath:hibernate.properties"/> 

java.io.FileNotFoundException:それはと

+0

'classpath:/ hibernate.properties'を試しましたか? –

答えて

2

Here some doc from spring

Antのスタイルパターンを存在しないため、クラスパスリソースが [hibernate.properties]を開くことができませんクラスパス:リソースが保証されていない 検索するルートパッケージがで利用可能な場合、一致するリソースを見つける複数のクラスパスの場所。これは、リソースためなど

COM/mycompanyの/パッケージ1 /サービスのcontext.xmlは一 場所にあってもよいが、場合パスよう

クラスパスとして:COM/mycompanyの/ ** /サービス

ので、

<util:properties id="HibernateProperties" location="classpath*:hibernate.properties"/> 

はあなたに良いチャンスを与える可能性があり-context.xml。

しかし、

*そのクラスパスに注意してください。Antのスタイルのパターンと組み合わせたとき パターンが開始される前に は、少なくとも1つのルートディレクトリに確実に動作しますが、実際のターゲットファイルがに存在しない限り、ファイル システム。つまり、classpath *:*。xmlのようなパターンでは、 はjarファイルのルートからファイルを取得するのではなく、拡張ディレクトリのルート からのみ取得します。これは、 JDKのClassLoader.getResources()メソッドの制限に由来し、ファイルシステム が渡された空の文字列(潜在的なルートが の検索と示されています)の位置のみを返します。

+1

ありがとう@kuhajeyan。私はspring.xmlを外部のjarファイル内で変更することはできません。この場合、他に何かできることはありますか? –

+0

@PunterVickyおそらく、クラスパスに既に存在するものを上書きする独自のものを定義することが可能であるはずです。ここをチェックしてください。http://stackoverflow.com/questions/12382070/overriding-property-file-using-spring – kuhajeyan

関連する問題