java - 升级到 Apache Cayenne 4.0 Milestone 5 版本后出现错误

标签 java apache-cayenne

我刚刚升级到 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/

相关文章:

java - 为什么我的递归不断抛出 StackOverflow 错误?

java - GridLayout 不调整大小以适应组件

java - 具有泛型的 Jackson2 编码包装器类

java - DateTimeFormatter.ofPattern 语言选项

java - 自定义构造函数 : Apache Cayenne 3. 2M

java - 使用 Apache Cayenne 向数据库表执行批量插入

java - 如何在字符串上突出显示

java - 我如何获得所有 Cayenne 管理的实体类的列表?

java - Apache 卡宴 : Handling Postgresql enum types