【问题标题】:Apache isis - Upgrading from 2.0.0-M5 to 2.0.0-M7Apache isis - 从 2.0.0-M5 升级到 2.0.0-M7
【发布时间】:2022-09-26 13:30:07
【问题描述】:

我更改了我的源代码和 pom.xml 从 2.0.0-M5 升级到 2.0.0-M7。请注意,以下错误均未出现在 M5 中。该应用程序正在再次编译,但是当转到该应用程序时,它显示了一长串元模型验证错误,这些错误在 M5 中不存在

这发生在很多课程上。关于如何正确解决此问题的任何线索(目前我只能将它们注释掉)?

someClass#defaultXSomeMethod(): is public, but orphaned (was not picked up by the framework); reporting orphans, because the class is setup for member introspection, without enforcing annotations

以下情况发生在框架类和不属于域模型本身的库中的类上。我不知道发生了什么,也不知道如何解决这个问题。

Collection action parameter found without supporting choices or autoComplete facet. Class: org.apache.isis.applib.query.Query action: withRange parameter 0

然后这个:

Action method overloading is not allowed, yet javax.activation.MimeType has action(s) that have a the same member name: [match]

这是一个包含的库类,它用于解析作为域对象方法之一中的输入参数提供的 mimeType。它曾经在M5中工作。关于如何避免这种情况或解决它的任何线索?

请注意,我自己的 DomainObjects(不在 M5 中)也出现重载错误;我想解决办法是停止超载。

感谢您以正确的方式指出我的任何提示

  • 在 2.0.0-M6 和 2.0.0-M7 中,我们使编程模型更加复杂,但也使元模型验证器更加严格。您可能最容易加入邮件列表,我们可以从那里邀请您加入我们的 slack 频道来帮助您解决这些问题。

标签: java metamodel isis


【解决方案1】:

“在不支持选择或自动完成方面的情况下找到集合操作参数。类:org.apache.isis.applib.query.Query 操作:withRange 参数 0”

如果这是一个框架服务,那么它不应该发生,并且听起来像一个错误。

我认为问题出在isis.core.meta-model.introspector. policy 配置属性中——默认是在元模型中包含未注释的,并且——错误地——包含了一些不应该包含的类型。

或者,您可以添加 @Programmatic@Domain.Exclude 以确保从元模型中排除方法。

作为一种解决方法,请尝试更改此配置属性。

最好的办法是加入用户邮件列表/松弛频道,这样我们就可以在那里更彻底地研究这个问题。

【讨论】:

  • 嗨,丹,谢谢您的回复。我刚加入邮件列表并要求加入频道。然后我将在邮件列表上交叉发布
【解决方案2】:

我也遇到了这个错误,并意识到我在我的类而不是字段上设置了 lombok 注释 @Getter,所以它暴露了注入服务的吸气剂。
这有点神秘,因为堆栈跟踪没有显示受影响的确切类。

从班级级别删除@Getter 解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-16
    • 1970-01-01
    • 2016-09-14
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多