将文件下载控件添加到xpage时的AbstractMethodError

时间:2015-03-16 10:03:31

标签: java xpages

在我们的某个应用中,我们目前正面临一个涉及下载控件的奇怪问题。当我们将文件下载控件添加到xpage并将其绑定到数据源(普通文档源)时,我们收到以下错误(请参阅问题底部的stacktrace。

我们正在使用Domino 9.0.1 FP3和domino openntf api插件。因为对这个问题的搜索没有给我们任何洞察力,我们希望有人可以解释发生了什么以及如何解决它。

javax.servlet.ServletException: java.lang.AbstractMethodError: lotus/domino/EmbeddedObject.getFileModified()Llotus/domino/DateTime;
    at com.ibm.xsp.webapp.FacesServlet.handleError(FacesServlet.java:648)
    at com.ibm.xsp.webapp.FacesServlet.renderErrorPage(FacesServlet.java:482)
    at com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:183)
    at com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:138)
    at com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103)
    at com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:576)
    at com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1335)
    at com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:853)
    at com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:796)
    at com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:565)
    at com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1319)
    at com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:662)
    at com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:482)
    at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:350)
    at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:306)
    at com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:272)
Caused by: java.lang.AbstractMethodError: lotus/domino/EmbeddedObject.getFileModified()Llotus/domino/DateTime;
    at com.ibm.xsp.model.domino.wrapped.DominoDocument$AttachmentValueHolder.<init>(DominoDocument.java:1939)
    at com.ibm.xsp.model.domino.wrapped.DominoRichTextItem.buildAttachmentListRT(DominoRichTextItem.java:2224)
    at com.ibm.xsp.model.domino.wrapped.DominoRichTextItem.getAttachmentList(DominoRichTextItem.java:2200)
    at com.ibm.xsp.model.domino.wrapped.DominoDocument.readFieldAttachments(DominoDocument.java:2080)
    at com.ibm.xsp.model.domino.wrapped.DominoDocument.getAttachmentList(DominoDocument.java:2152)
    at com.ibm.xsp.model.domino.DominoAttachmentDataModel.getAttachments(DominoAttachmentDataModel.java:58)
    at com.ibm.xsp.model.domino.DominoAttachmentDataModel.<init>(DominoAttachmentDataModel.java:39)
    at com.ibm.xsp.model.domino.DominoDataModelFactory.createDataModel(DominoDataModelFactory.java:68)
    at com.ibm.xsp.application.ApplicationExImpl.createDataModel(ApplicationExImpl.java:461)
    at com.ibm.xsp.component.UIFileDownload.isRendered(UIFileDownload.java:485)
    at javax.faces.component.UIComponentBase.fillShadowedFlags(UIComponentBase.java:880)
    at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:948)
    at javax.faces.component.UIData.encodeBegin(UIData.java:788)
    at com.ibm.xsp.component.UIDataEx.encodeBegin(UIDataEx.java:425)
    at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:842)
    at com.ibm.xsp.util.FacesUtil.renderChildren(FacesUtil.java:873)
    at com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(HtmlBasicRenderer.java:206)
    at com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(ReadOnlyAdapterRenderer.java:162)
    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:979)
    at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:844)
    at com.ibm.xsp.util.FacesUtil.renderChildren(FacesUtil.java:873)
    at com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(HtmlBasicRenderer.java:206)
    at com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(ReadOnlyAdapterRenderer.java:162)
    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:979)
    at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:844)
    at com.ibm.xsp.util.FacesUtil.renderChildren(FacesUtil.java:873)
    at com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(HtmlBasicRenderer.java:206)
    at com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(ReadOnlyAdapterRenderer.java:162)
    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:979)
    at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:844)
    at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    at com.ibm.xsp.util.FacesUtil.renderChildren(FacesUtil.java:873)
    at com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(HtmlBasicRenderer.java:206)
    at com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(ReadOnlyAdapterRenderer.java:162)
    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:979)
    at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:844)
    at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    at com.ibm.xsp.util.FacesUtil.renderChildren(FacesUtil.java:873)
    at com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(HtmlBasicRenderer.java:206)
    at com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(ReadOnlyAdapterRenderer.java:162)
    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:979)
    at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:844)
    at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    at com.ibm.xsp.component.UIViewRootEx._renderView(UIViewRootEx.java:1317)
    at com.ibm.xsp.component.UIViewRootEx.renderView(UIViewRootEx.java:1255)
    at com.ibm.xsp.application.ViewHandlerExImpl.doRender(ViewHandlerExImpl.java:651)
    at com.ibm.xsp.application.ViewHandlerExImpl._renderView(ViewHandlerExImpl.java:321)
    at com.ibm.xsp.application.ViewHandlerExImpl.renderView(ViewHandlerExImpl.java:336)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:103)
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:120)
    at com.ibm.xsp.controller.FacesControllerImpl.render(FacesControllerImpl.java:270)
    at com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:261)
    at com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:157)
    at com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:160)
    ... 13 more 

1 个答案:

答案 0 :(得分:1)

如果自上次编译当前正在执行的方法以来某些类的定义发生了不兼容的更改,则会发生

java.lang.AbstractMethodError

我认为底层方法是返回一个Llotus / domino / DateTime对象数组,但源代码@ https://github.com/OpenNTF/org.openntf.domino/blob/master/org.openntf.domino/src/org/openntf/domino/impl/EmbeddedObject.java 表示它需要单个对象