Java GWTP奇怪错误消息(不准确)

Java GWTP奇怪错误消息(不准确),java,gwt,gwt-gin,gwtp,presenter,Java,Gwt,Gwt Gin,Gwtp,Presenter,所以我真的需要一些有用的提示来解决我的GWTP应用程序的一个问题,也许你们中的一个以前遇到过这个问题。因此,我将GWTP 1.1用于: com.gwtplatform.mvp.mvp不带入口点 com.gwtplatform.dispatch.dispatch with com.google.gwt.uibinder.uibinder 我遇到的问题是,当我遇到客户端错误时,几乎可以出现在客户端的任何地方,不确定边界在哪里,我会收到一条与GIN有关的非常神秘的消息,而不是一条帮助我解决问题的消息。

所以我真的需要一些有用的提示来解决我的GWTP应用程序的一个问题,也许你们中的一个以前遇到过这个问题。因此,我将GWTP 1.1用于:

com.gwtplatform.mvp.mvp不带入口点 com.gwtplatform.dispatch.dispatch with com.google.gwt.uibinder.uibinder 我遇到的问题是,当我遇到客户端错误时,几乎可以出现在客户端的任何地方,不确定边界在哪里,我会收到一条与GIN有关的非常神秘的消息,而不是一条帮助我解决问题的消息。似乎与GWTP代理有关,下面是我得到的典型消息:真正的问题不是错误消息呈现给我的内容。OpenIcientPresenter扩展了IncidentPresenter,它是我用来管理事件生命周期的一个Presenter。在本例中,它扩展了我创建的另一个Presenter,称为RequestPresenter,它允许用户请求PresenterWidget类进入该Presenter生命周期的任何给定插槽,这扩展了另一个名为RichPresenter的presenter,它具有几乎所有演示者都需要的功能,如页面加载指示和某些页面锁定等。以下是这些类:

OpenIncidentPresenter

公共类OpenIncidentPresenter扩展IncidentPresenter实现ViewUIHandler、HasRequestedWidgets、NewIncidentHandler、, ChangeSectionHandler,ConfigureHandler{ 公共接口MyView扩展了视图,HasUiHandlers{ 剪 } @ProxyCodeSplit @NameTokens.open //@UseGatekeeperLoginGatekeeper.class 公共接口MyProxy扩展了ProxyPlace{ } 私有静态记录器Logger=Logger.getLoggerOpenIncidentPresenter.class.getName; 工艺过程; SectionTuple currentSection=新的SectionTuple; Map sections=新的HashMap; List sectionWigets=new ArrayList; List cachedActivities=新建ArrayList; List cachedAuthorities=新建ArrayList; List cachedSeverities=新建ArrayList; List cachedLocations=新建ArrayList; List cachedSites=新建ArrayList; List cachedAreas=新阵列列表; 严重程度; 布尔值=false; 布尔值changedconsequence=false; 最终图像资源图像资源; RegisteredRequestWidget actionBarReg; RegisteredRequestWidget progressBarReg; @注入 公共OpenIncidentPresenterfinal EventBus EventBus,最终MyView视图, 最终MyProxy代理,最终DispatchAsync dispatch, 最终PlaceManager PlaceManager,ImageResources ImageResources{ supereventBus、view、proxy、dispatch、placeManager; this.imageResources=imageResources; getView.setUiHandlersthis; logger.logLevel.INFO,构建OpenIncidentPresenter; } @凌驾 受保护的父对象{ RevealContentEvent.firethis,ApplicationPresenter.SLOT\u MIDDLE,this; } 剪 } 附带陈述人

公共抽象类偶然事件演示者> 扩展RichPresenter实现HasRequestedWidgets{ RequestWidgetManager requestManager=新的RequestWidgetManager此; 公共RequestPresentReventBus事件总线、T视图、H代理、, PlaceManager PlaceManager{ thiseventBus、view、proxy、placeManager、false; } 公共RequestPresentReventBus事件总线、T视图、H代理、, PlaceManager PlaceManager,布尔值确认{ supereventBus、view、proxy、placeManager、leaveConfirmation; } @凌驾 public void prepareFromRequestPlaceRequest请求{ prepareFromRequestrequest,空; } /** *{@link requestpresenterpreparrefromrequestplacerequest}的替代方案 *将允许您注册{@link FinalCallback},以防您有依赖关系 *在请求窗口小部件上。 *@param请求 *@param回调 */ public void prepareFromRequestPlaceRequest,FinalCallback回调{ super.prepareFromRequestrequest; executeAfterRequestingcallback; 请求小部件; } @凌驾 受保护的无效绑定{ super.onBind; registerRequestWidgets; } @凌驾 受保护的空不绑定{ super.onUnbind; 取消注册; } @凌驾 隐藏的受保护的空白{ 超级牛皮; 解雇小部件; } @凌驾 受保护的空隙{ super.onReveal; 请求小部件; } 私有void请求小部件{ requestManager.requestAll; onRequestWidgets; } 私有无效解除控件{ requestManager.dismissAll; Ondismiss; } 公共无效取消注册请求窗口小部件{ requestManager.unregisterAllWidgets; } @凌驾 公共摘要无效registerRequestWidgets; 公共void onRequestWidgets{ //默认情况下什么也不做 } 公共无效控件{ //默认情况下什么也不做 } 受保护的RequestWidgetManager getRequestManager{ 返回请求管理器; } /** *这将在加载时发出最终请求时执行回调方法。 *必须在调用super.onReveal或super.prepareFromRequest之前设置此选项。 *或者使用{@link requestpresenterpreparrefromrequestplacerequest,FinalCallback}来 *设置最后的回调。 *@param回调 */ public void executeAfterRequestingFinalCallback回调{ requestManager.setFinalCallbackcallback; } public>RegistereRequestWidget

registerRequestWidget HasHandlers处理程序,类

clazz,对象槽,布尔clearSlot{ 返回registerRequestWidgethandler,clazz,slot,clearlot,null; } 公共>扩展演示者{ 受保护的最终PlaceManager PlaceManager; 私人确认; private String defaultLeaveMessage=当+ 正在离开此页面,是否确实要离开?; 公共RichPresentReventBus事件总线、T视图、H代理、, PlaceManager PlaceManager{ thiseventBus、view、proxy、placeManager、false; } 公共RichPresentReventBus事件总线、T视图、H代理、, PlaceManager PlaceManager,布尔值确认{ 超级事件总线、视图、代理; this.placeManager=placeManager; this.leaveConfirmation=leaveConfirmation; } /** *为UI设置组件控件处理程序 */ 受保护的无效设置句柄最终T视图{ //默认情况下什么也不做 } @凌驾 public void prepareFromRequestPlaceRequest请求{ super.prepareFromRequestrequest; //启动负荷指示器 加载indicatorevent.firethis,true; //尝试设置休假确认 设置离开确认离开确认; } @凌驾 受保护的无效绑定{ super.onBind; setupHandlersgetView; } @凌驾 受保护的空不绑定{ super.onUnbind; //删除所有事件处理程序 forHandlerRegistration注册:handlerRegistrations{ reg.removeHandler; } handlerRegistrations.clear; } @凌驾 受保护的空隙{ super.onReveal; //停止负载指示器 加载indicatorevent.firethis,true; //尝试设置休假确认 设置离开确认离开确认; } @凌驾 重置时受保护的无效{ super.onReset; //停止负载指示器 加载indicatorevent.firethis,false; } /** *设置页面离开确认。 *@param-leaveConfirmation */ public void setleaveconfirmation布尔leaveConfirmation{ this.leaveConfirmation=leaveConfirmation; iLeaveConfirmation&!BrowserUtils.isIEBrowser{ placeManager.setOnLeaveConfirmationdefaultLeaveMessage; }否则{ placeManager.setOnLeaveConfirmationnull; } } 公共布尔值IsConfigonLeave{ 返回确认; } 公共字符串getDefaultLeaveMessage{ 返回默认消息; } public void setDefaultLeaveMessageString消息{ this.defaultLeaveMessage=消息; } } 我觉得这可能是一个促成因素。我有一大串演示者,我可能实施错误

这使得我很难识别客户端代码中的问题。我必须通过我的更改,恢复它们,直到我不再收到此消息。这太荒谬了。如果你能看到我做错了什么或需要更多的信息,请让我知道!非常感谢


干杯!Ben

你能不能也包括你的AbstractPresenterModule代码?我也注意到了这一点,但我认为这只是GWTP的边缘有点粗糙,没有吐出很好的错误。