1

Typesafe's libraryconf/reference.confで説明されているように、いくつかの機能を別の Play モジュールに抽出し始めています。この構成は、モジュールのコンテキスト内で実行される機能テストなどによって、問題なく取得されます。Config

しかし、上記のモジュールに応じてアプリケーションを起動しようとすると、いくつかのクラスローダーの問題が発生しているようです。たとえば、Akka サブシステムから奇妙な苦情が発生します。

No configuration setting found for key 'akka.version'

この例外はreference.conf、モジュールからファイルを削除すると解消されます (他の変更はありません) が、明らかにアプリケーションは動作しなくなります。現在、モジュール構成は、メイン アプリの構成にあるファイルconf/module-reference.confにあります。includeこれは機能しますが、include.

私はreference.confどういうわけか、Akka によって提供されたものを隠しているのではないかと思います。以前にこの問題に遭遇した人はいますか? そして、これを解決する最善の方法は何ですか?

4

1 に答える 1

0

私はいくつかの奇妙なファイルシステムの不整合の犠牲になっているようです:

  • を使用して、モジュールを Play のローカル リポジトリにデプロイしています。play publish-locally
  • これと同じリポジトリが Eclipse のビルド パスにあります (で作成play eclipsify)
  • ときどき、モジュールの JAR が何らかの形で壊れているときに、Play メインアプリケーションがモジュールの JAR を取得しているように見えます。

回避策:

  • エクリプスを閉じる
  • モジュールをローカルにデプロイする
  • メイン アプリケーションのクリーン ビルドを実行する

この手順を使用すると、アプリケーションの構成は正常に機能します。

ヒント

この問題を調べているうちに、Typesafe の Config ライブラリの便利な機能に出会いました。次のコード行を使用して、各エントリの場所を含む構成ツリー全体を取得できます。

val configDump: String = current.configuration().underlying.root().render()

たとえば、これをさらに分析するためにファイルにダンプします。

于 2013-02-06T07:25:17.433 に答える