簡體   English   中英

帶有Cache實現的war文件在grails 2.4.4上工作正常,但在tomcat 7上失敗

[英]war file with Cache implementation works fine on grails 2.4.4 but fails on tomcat 7

我正在使用grails 2.4.4並嘗試在其中實現緩存。 我在lib文件夾和構建路徑中添加了cache-api.jar,並添加了一個Maven依賴項編譯“ org.jsr107.ri:cache-ri-impl:1.0.0-RC1”。 當我以grails run-app的身份進行戰爭時,緩存工作正常。 但是,當我在雄貓上部署相同的戰爭時,它給了我以下例外。

[http-apr-9090-exec-2] ERROR errors.GrailsExceptionResol
ver  - NoSuchMethodError occurred when processing request: [POST] /pharma/login
javax.cache.CacheManager.createCache(Ljava/lang/String;Ljavax/cache/configuratio
n/Configuration;)Ljavax/cache/Cache;. Stacktrace follows:
org.codehaus.groovy.grails.web.servlet.mvc.exceptions.ControllerExecutionExcepti
on: Executing action [login] of controller [pharma.PharmaController]  ca
used exception: Runtime error executing action
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: org.codehaus.groovy.grails.web.servlet.mvc.exceptions.ControllerExecu
tionException: Runtime error executing action
        ... 3 more
Caused by: java.lang.reflect.InvocationTargetException
        ... 3 more
Caused by: java.lang.NoSuchMethodError: javax.cache.CacheManager.createCache(Lja
va/lang/String;Ljavax/cache/configuration/Configuration;)Ljavax/cache/Cache;
        at trident.TridentCache.getCache(TridentCache.java:32)
        at trident.pharma.PharmaService.login(PharmaService.groovy:107)
        at trident.pharma.PharmaController.login(PharmaController.groovy:46)
        ... 3 more

使我感到困惑的是,該戰爭在grails環境中運行良好,並且緩存實現也完美運行,但部署在Tomcat上的戰爭同樣如此,它引發了上述異常。

在不知道使用哪個版本的grails,tomcat和jdK的情況下,很難理解發生了什么,但是僅作為例外,看來您的Grails實現和所用的Tomcat具有javax.cache.CacheManager類的兩個不同版本。

因此缺少方法...

更新:您提到的org.jsr107.ri:cache-ri-impl:1.0.0-RC1軟件包使用javax.cache»cache-api 1.0.0-RC1

該特定版本在CacheManager類中具有此方法簽名

  <K, V, C extends Configuration<K, V>> Cache<K, V> createCache(String cacheName,
                                                            C configuration)
  throws IllegalArgumentException;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM