我刚刚升级到 Apache Cayenne 4.0 M5,但出现以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/cache/CacheManager at org.apache.cayenne.jcache.JCacheModule.configure(JCacheModule.java:44) at org.apache.cayenne.di.spi.DefaultInjector.(DefaultInjector.java:68) at org.apache.cayenne.di.DIBootstrap.createInjector(DIBootstrap.java:38) at org.apache.cayenne.di.DIBootstrap.createInjector(DIBootstrap.java:46) at org.apache.cayenne.configuration.CayenneRuntime.(CayenneRuntime.java:79) at org.apache.cayenne.configuration.server.ServerRuntime.(ServerRuntime.java:128) at org.apache.cayenne.configuration.server.ServerRuntimeBuilder.build(ServerRuntimeBuilder.java:234) at com.company.databases.postgresql.financedb.runtime.FinanceDBRuntime.getFinanceAccountsDBPostgreSQLRuntime(FinanceDBRuntime.java:11)
我所做的更改是从 new ServerRuntime("configfile") (已标记为已弃用)更改为 ServerRuntime.builder("configfile").build()。而且...我使用 Modeler 重新生成了所有类,将其更改为“Property.create(”...
我降级到 M4,恢复了所有更改,一切正常。
这是 M5 版本中的错误吗?或者我该如何解决这个问题?谢谢!
最佳答案
简短的回答 - 如果您不打算使用 JCache,请从应用程序依赖项中删除 cayenne-jcache-4.0.M5.jar
。
更长的答案 - Cayenne 4.0.M5 具有模块自动加载功能。因此,每当您将任何 cayenne-*.jar
放在类路径上时,它都会尝试在 ServerRuntime 中安装其扩展。具体来说,cayenne-jcache-4.0.M5.jar
尝试安装基于 JCache 的 QueryCache,由于 JCache 库不可用,因此引发了异常。
有关更多详细信息和其他 M5 更改,请参阅 M5 UPGRADE.txt .
关于java - 升级到 Apache Cayenne 4.0 Milestone 5 版本后出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42761548/