【发布时间】:2015-10-06 23:12:12
【问题描述】:
我正在使用 grails 2.4.4 并尝试在其中实现缓存。 我在 lib 文件夹和构建路径中添加了 cache-api.jar,并添加了一个 maven 依赖项编译“org.jsr107.ri:cache-ri-impl:1.0.0-RC1”。 当我作为 grails run-app 运行战争时,缓存工作正常。 但是当我在 tomcat 上部署相同的战争时,它给了我以下异常。
[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
令我感到困惑的是,war 在 grails 环境中运行良好,缓存实现也运行良好,但同样的 war 在 Tomcat 上部署时,会引发上述异常。
【问题讨论】:
标签: java maven tomcat grails caching