私はcontaineriseするJavaアプリケーションが与えられました。ehcacheがTomcatのDockerイメージで動作していません
アプリケーションは現在、Tomcat8 JRE8 AWS Elasticbeanstalkインスタンスで実行されています。
しかし、OpenJDK8とTomcat8がRPM経由でインストールされているAmazon Linuxのベースイメージから構築されたDockerイメージにはアプリケーションがデプロイできません。
配備エラーがEhcacheのにも関する:
Error creating bean with name 'getEhcache' defined in *****: Invocation of init method failed; nested exception is net.sf.ehcache.CacheException: Error configuring from input stream. Initial cause was null:16: Element <cache> does not allow attribute "maxEntriesLocalHeap".
I理解使用さEhcacheのとEhcacheのバージョンとの間の設定の不一致がある場合、このエラーは、典型的に生じること、maxEntriesLocalHeapバージョン2.10で導入された、すなわちこと、バージョン2.10が使用できない場合、このエラーが発生します。
私はアプリケーションペイロードでチェックしましたし、正しいjarファイルが利用可能である:
bash-4.2# pwd
/var/lib/tomcat8/webapps/ROOT/WEB-INF/lib
bash-4.2# ls -la ehcache-*
-rw-rw-r-- 1 root root 8914463 Jan 24 12:27 ehcache-2.10.2.jar
-rw-rw-r-- 1 root root 1006074 Jan 24 12:27 ehcache-core-2.4.5.jar
-rw-rw-r-- 1 root root 124522 Jan 24 12:27 ehcache-spring-annotations-1.2.0.jar
開発者は、アプリケーションがEhcacheの古いバージョンを拾っていることを私に言ったが、私が見ることができませんこれはバニラドッカーの画像でどのように可能ですか?私は、実行時にDockerコンテナ内のアクセス権やファイルシステムへのアクセスと何か関係があることによって生成されている誤ったエラーだと思います。アプリケーションに付属
ehcache.xmlファイルがある:
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ehcache.xsd"
updateCheck="true"
monitoring="autodetect"
dynamicConfig="true">
<diskStore path="java.io.tmpdir"/>
<cache name="messageCache"
maxEntriesLocalHeap="10000"
maxEntriesLocalDisk="1000"
eternal="false"
diskSpoolBufferSizeMB="20"
timeToIdleSeconds="43200" timeToLiveSeconds="43200"
memoryStoreEvictionPolicy="LFU"
transactionalMode="off">
<persistence strategy="localTempSwap"/>
</cache>
どのような援助が理解されるであろう。
答えは正しいです。ちなみに、私があなただったら 'updateCheck'をfalseにします。 – Henri
意味がありますが、ElasticBeanstalkインスタンスの問題ではないが、Dockerコンテナの問題である理由が不思議です。 –