この問題は奇妙になり始めました。 私のアプリケーションでorg.jsr107.riライブラリを使用しました。appengine-api-1.0-sdk-1.9.57.jarとcache-api-1.0.0.jarとの間の競合
私はGradleのを使用して、自分のアプリケーションを起動したとき、すべてが大丈夫だったが、私は戦争のファイルを構築し、私のTomcatサーバー上に展開したとき、私は例外だ:、いくつかの調査の後
java.util.ServiceConfigurationError: javax.cache.spi.CachingProvider: Provider org.jsr107.ri.spi.RICachingProvider could not be instantiated ... Caused by: java.lang.IncompatibleClassChangeError: Implementing class
は、私は、cache-api-1.0.0.jarライブラリにjavax.cache.CacheManagerインタフェースがあり、appengine-api-1.0-sdk-1.9.57.jarライブラリにjavax.cache.CacheManagerというクラスがあることがわかりました。
このライブラリからjavax.cache。*を削除したとき(またはappengine-api-1.0-sdk-1.9.57.jarの名前をzappengine-api-1.0-sdk-1.9.57.jarに変更してクラスの読み込み順序)、私のアプリケーションはうまく動作し始めましたが、このソリューションはひどい(私のために)見えます。
JSR107仕様(http://download.oracle.com/otn-pub/jcp/jcache-1_0-fr-spec/JSR107FinalSpecification.pdf)を開き、CacheManager インターフェイスを使用する必要があることがわかりました。
この問題の良い解決策がありますか? javax.cache(およびおそらくjavax.mail)ライブラリのないappengine-api-1.0-sdk-1.9.57.jarファイルはありますか?