我的任务是迁移到wicket 1.4到wicket 1.5。尽管移民指南中缺乏信息,但我能以某种方式重构大多数问题。不幸的是我被“资源”困住了 - 我得到了这个错误
java.lang.IllegalArgumentException:参数'resource'可能不为null。
我理解的是,某些事情发生了变化,检票口无法再“获取”我的资源。所以我曾经(在wicket 1.4中)有一段代码负责创建图像并传递它(该方法在扩展WebPage的类中):
$('#map').usmap({
<event>State: {
'MD' : function(event, data) {
console.log('You interacted with the state of Maryland');
}
}
});
现在资源类已不存在或者我找不到它。在搜索互联网时,我能够将其更改为
private void addImageLogo() {
Resource res = new Resource() {
@Override
public IResourceStream getResourceStream() {
String logo = ConfigurationManager.getInstance().getPathValue(ConfigurationManager.LOGO_FILE_PATH);
return new FileResourceStream(new File(logo));
};
Image logo = new Image("logo", res);
add(logo);
}
这负责获取路径(及其工作):private void addImageLogo() {
String logoTxt = ConfigurationManager.getInstance().getPathValue(ConfigurationManager.LOGO_FILE_PATH);
ResourceReference res = new ResourceReference(logoTxt) {
@Override
public IResource getResource() {
return null;
}
};
Image logo = new Image("logo", res);
add(logo);
}
不幸的是,我仍然遇到上面提到的这个错误。方法ConfigurationManager.getInstance().getPathValue(ConfigurationManager.LOGO_FILE_PATH)
自动生成,我相信这是一个问题,因为我正在重新调整getResource()
,但我不知道应该返回什么(或如何)。
答案 0 :(得分:1)
由于它适用于1.4.x中的IResourceStream,因此您只需使用org.apache.wicket.request.resource.ResourceStreamResource作为Image的IResource。
您的第一个代码段未完整,因此我无法为您提供准确的替换代码。