有问题的Wicket运行时异常

有问题的Wicket运行时异常,wicket,runtime-error,Wicket,Runtime Error,我无法确定Wicket应用程序中运行时异常的原因。我已经设置了许多断点,但在提交表单时,只有在加载表单时才触发断点。这是堆栈: WicketMessage:没有为类定义get方法:class this.is.my.class.WicketDocumentModel表达式:DocumentUpload 根本原因: org.apache.wicket.WicketRuntimeException:没有为类定义get方法:class this.is.my.class.WicketDocumentMod

我无法确定Wicket应用程序中运行时异常的原因。我已经设置了许多断点,但在提交表单时,只有在加载表单时才触发断点。这是堆栈:

WicketMessage:没有为类定义get方法:class this.is.my.class.WicketDocumentModel表达式:DocumentUpload

根本原因:

org.apache.wicket.WicketRuntimeException:没有为类定义get方法:class this.is.my.class.WicketDocumentModel表达式:DocumentUpload 位于org.apache.wicket.util.lang.PropertyResolver.getGetAndSetter(PropertyResolver.java:445) 位于org.apache.wicket.util.lang.PropertyResolver.getObjectAndGetSetter(PropertyResolver.java:287) 位于org.apache.wicket.util.lang.PropertyResolver.getValue(PropertyResolver.java:90) 位于org.apache.wicket.model.AbstractPropertyModel.getObject(AbstractPropertyModel.java:117) 位于org.apache.wicket.Component.getDefaultModelObject(Component.java:1664) 位于org.apache.wicket.Component$3.compare(Component.java:548) 位于org.apache.wicket.Component.setDefaultModelObject(Component.java:3049) 位于org.apache.wicket.markup.html.form.FormComponent.updateModel(FormComponent.java:1168) 位于org.apache.wicket.markup.html.form.upload.FileUploadField.updateModel(FileUploadField.java:100) 位于org.apache.wicket.markup.html.form.form$FormModelUpdateVisitor.component(form.java:225) 位于org.apache.wicket.markup.html.form.FormComponent.visitComponentStorderHelper(FormComponent.java:514) 位于org.apache.wicket.markup.html.form.FormComponent.visitComponentStorderHelper(FormComponent.java:493) 位于org.apache.wicket.markup.html.form.FormComponent.visitComponentStorder(FormComponent.java:465) 位于org.apache.wicket.markup.html.form.form.internalUpdateFormComponentModels(form.java:2051) 位于org.apache.wicket.markup.html.form.form.updateFormComponentModels(form.java:2019) 位于org.apache.wicket.markup.html.form.form.process(form.java:984) 位于org.apache.wicket.markup.html.form.form.process(form.java:911) 位于org.apache.wicket.markup.html.form.form.onFormSubmitted(form.java:876) 位于java.lang.reflect.Method.invoke(Method.java:597) 位于org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:182) 位于org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73) 位于org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92) 位于org.apache.wicket.RequestCycle.ProcessEventsAndResponse(RequestCycle.java:1250) 位于org.apache.wicket.RequestCycle.step(RequestCycle.java:1329) 位于org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428) 在org.apache.wicket.RequestCycle.request(RequestCycle.java:545) 位于org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:456) 位于org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:289) 位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263) 位于org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190) 位于org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) 位于org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767) 位于org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697) 位于org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889) 位于org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690) 运行(Thread.java:619)

我确实发现了关于类似问题的讨论,但我还没有完全能够将其中提出的建议转化为针对我的情况的解决方案。我的类不包含名为DocumentUpload的Java变量,但包含以下内容:

fuf = new FileUploadField("DocumentUpload");

我在这个问题上花了几个小时,在我向SO发布了关于它的信息20分钟后,我又一次发现了它。修复方法是将上载字段声明转换为提供模型的声明,如下所示:

fuf = new FileUploadField("DocumentUpload", new Model<FileUpload>());
fuf=newfileuploadfield(“DocumentUpload”,newmodel());
编辑:原来这与1.3->1.4迁移有关。根据

文件上传字段-现在需要型号

FileUploadField现在需要一个模型。这意味着,如果您以前只使用ID>构造函数(即new FileUploadField(“myFileField”)),则需要将其更改为包含>模型(即new FileUploadField(“myFileField”),new model()

是的。。您遇到了“未定义get方法”问题,因为它假设了ComponentPropertyModel(iirc),并试图从中读取它的模型,但没有找到“DocumentUpload”的get方法。。你可以接受你自己的答案。。