首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Wicket 8 AnnotatedMountScanner不再工作了

Wicket 8 AnnotatedMountScanner不再工作了
EN

Stack Overflow用户
提问于 2018-08-17 12:39:24
回答 1查看 191关注 0票数 1

在从Wicket 7升级到Wicket 8之后,页面安装不再工作了。

在Wicket 7中我添加了

代码语言:javascript
运行
复制
new AnnotatedMountScanner().scanPackage("com.example").mount(this);

在我的init() AuthenticatedWebApplication方法中,在我的页面上添加了@MountPath("/mypage")

在Wicket 8中,这不再起作用了,而不是/mypage,浏览器URL指向wicket/bookmarkable/com.example.MyPage,但是当我手动添加

mountPage("AAA", MyPage.class);它起作用了。

下面是包含所有wicket依赖项的类路径:

$ mvn依赖项:树\ grep wicket信息+- - org.apache.wicket:wicket-core:jar:8.0.0:compile INFO ++ org.apache.wicket:wicket-request:jar:8.0.0:compile INFO ++ org.apache.wicket:wicket-util:jar:8.0.0:compile INFO +- org.wicketstuff:wicketstuff-annotation:jar:8.0.0:compile INFO +- org.apache.wicket:wicket-spring:jar:8.0.0:compile信息- org.apache.wicket:wicket-ioc:jar:8.0.0:compile INFO +- org.apache.wicket:wicket-datetime:jar:8.0.0-M7:compile INFO +- org.apache.wicket:wicket-auth-roles:jar:8.0.0:compile INFO +- de.agilecoders.wicket:wicket-bootstrap-core:jar:2.0.2:compile信息 +- de.agilecoders.wicket:jquery-selectors:jar:2.0.0:compile INFO + +- de.agilecoders.wicket.webjars:wicket-webjars:jar:2.0.7:compile INFO + +- org.apache.wicket:wicket-extensions:jar:8.0.0:compile INFO +- de.agilecoders.wicket:wicket-bootstrap-extensions:jar:2.0.2:compile 信息+- com.googlecode.wicket-jquery-ui:wicket-jquery-ui-plugins:jar:8.0.0-M7:compile信息- com.googlecode.wicket-jquery-ui:wicket-jquery-ui-core:jar:8.0.0-M7:compile

但是我不想手动添加所有的类型。在Wicket 8中也可以再次使用AnnotatedMountScanner吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-20 09:32:59

结果发现,这是spring-boot devtools类重新加载的问题。当spring-boot-devtools作为依赖项添加时,RestartClassLoader总是更改Page,Wickets匹配也不正常。

调试后的说明。当我的BookmarkablePageLink调用getURL()时,它会对RequestHandlers进行正常的Wicket处理。

关键部分开始于AbstractBookmarkableMapper#382,Wicket试图通过调用checkPageClass来确定是否RequestHandler中的页面类与通过pageClassProvider内部表示的MountedMapper类匹配。

代码语言:javascript
运行
复制
@Override
protected boolean checkPageClass(Class<? extends IRequestablePage> pageClass)
{
    return Objects.equals(pageClass, this.getPageClass());
}

由于对象不一样(由于使用了RestartClassLoader),我的书签页面没有从MountedMapper获得URL。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51895657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档