[解決済み] Springでjar内のファイルが表示されない
2022-06-14 12:50:56
質問
すべて
以下のMANIFEST.MFを内包したjarファイルを作成しました。
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.3
Created-By: 1.6.0_25-b06 (Sun Microsystems Inc.)
Main-Class: my.Main
Class-Path: . lib/spring-core-3.2.0.M2.jar lib/spring-beans-3.2.0.M2.jar
そのルートにはmy.configというファイルがあり、spring-context.xmlの中でこのように参照されています。
<bean id="..." class="...">
<property name="resource" value="classpath:my.config" />
</bean>
jarを実行すると、その特定のファイルの読み込み以外はすべてうまくいきます。
Caused by: java.io.FileNotFoundException: class path resource [my.config] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/D:/work/my.jar!/my.config
at org.springframework.util.ResourceUtils.getFile(ResourceUtils.java:205)
at org.springframework.core.io.AbstractFileResolvingResource.getFile(AbstractFileResolvingResource.java:52)
at eu.stepman.server.configuration.BeanConfigurationFactoryBean.getObject(BeanConfigurationFactoryBean.java:32)
at eu.stepman.server.configuration.BeanConfigurationFactoryBean.getObject(BeanConfigurationFactoryBean.java:1)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142)
... 22 more
- クラスはjarの内部からロードされます。
- springやその他の依存関係は、分離されたjarからロードされます。
- springコンテキストがロードされる(new ClassPathXmlApplicationContext("spring-context/applicationContext.xml"))
- my.propertiesがPropertyPlaceholderConfigurerにロードされます("classpath:my.properties")。
- .config ファイルをファイルシステムの外に置いて、リソースの URL を 'file:' に変更すると、すべてがうまくいくようですが......。
何かヒントはありますか?
どのように解決するのですか?
spring-context.xml と my.config ファイルが異なる jar にある場合、spring-context.xml と my.config ファイルを同じ場所に配置する必要があります。
classpath*:my.config
?
もっと詳しく こちら
また
resource.getInputStream()
ではなく
resource.getFile()
でなく、jarファイルの内部から読み込んだ場合。
関連
-
[解決済み] Spring Batchのステップスコープの仕組み
-
[解決済み] SecurityContextにAuthenticationオブジェクトが見つかりませんでした - Spring 3.2.2
-
[解決済み] spring-ws: エンドポイントマッピングが見つかりませんでした
-
SpringプロジェクトがファイルapplicationContext.xmlを解決できないエラー
-
アーティファクトXXXXが見つからず、Mavenにalibaba.cloudの依存関係を導入することができませんでした。
-
レスポンスボディとレスポンスエンテイティ
-
[解決済み] Spring Bootアプリケーションにポートを設定する方法
-
[解決済み] 実行中のJARファイルのパスを取得する方法は?
-
[解決済み】Spring RestTemplateリクエストに "Accept: "ヘッダーを設定する方法は?
-
[解決済み】SpringのGA、RC、M2リリースの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】クライアントが送信したリクエストは構文的に正しくありません -Spring MVC + JDBC Template
-
[解決済み】Unit TestからApplicationContextを読み込むのに失敗しました。FileNotFound
-
[解決済み] Spring boot - マネージドタイプではありません。
-
[解決済み] SpringBootです。以下の候補からメインクラスを1つも見つけることができません。
-
ソースコード解析:SpringはどのようにIOCコンテナにBeanを登録するのですか?
-
一致するビーンは1つだと思ったが、2つ見つかった:onedbJdbcTemplate,twodbJdbcTemplate
-
[解決済み】 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
-
[解決済み】IntelliJから実行するときにSpring Bootプロファイルを有効にするにはどうすればよいですか?
-
[解決済み】データソースの設定に失敗しました:'url'属性が指定されておらず、埋め込まれたデータソースが設定できませんでした。
-
[解決済み] スコープ("prototype")ビーンスコープで新しいビーンが作成されない