问题标签 [requestfactory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
638 浏览

gwt - GWT / RequestFactory:在检索给定的实体列表时,执行 n+1 个 SQL 调用

可能重复:
GWT 中的 requestfactory 和 findEntity 方法

当我使用带有 ServiceLocator 和 Locator 构造的 RequestFactory 请求实体列表时,GWT 执行 n+1 个 SQL 调用。

0 投票
2 回答
969 浏览

java - 如何使用 RequestFactory: .with(propertyRefs) 组合对象

我是 GWT 的新手,我需要您的专业建议。

我的问题是当这些 propertyRefs 本身包含我想要检索的项目列表时,如何将 RequestFactory: .with(propertyRefs) 用于“树”结构。

一些细节:

在服务器端,我有四个域对象 A、B、C、D 的层次结构:

  • 一个对象包含(或者我最好说保持引用)列表
  • B 包含列表
  • C 包含 List 。

所有提到的域对象都有其相应的代理接口 AProxy、BProxy、CProxy、DProxy 在客户端使用。

在客户端,我想通过一次请求 AProxy 对象来获得所有对象的层次结构,这样我就可以从使用“get”方法访问数据的简便性中受益,并且不必为每个子对象进行循环服务器请求, 子子对象等

由于规范!我应该用smth。像 .with("property ref") 来获得一个层次结构,但是如何检索以下组合级别(在我的情况下,每个对象 B 的列表和每个对象 C 的列表)。

提前致谢。

0 投票
2 回答
633 浏览

gwt - Tomcat 上 GWT 2.4 rc1 RequestFactory 的问题

我们的 gwt 应用程序在使用 gwt 2.4rc1 的开发模式下运行良好,但是当我们在 tomcat 6 上部署时,在第一次 requestfactory 调用时,我们在服务器端得到以下异常。

在客户端,500(内部服务器错误)

0 投票
2 回答
1366 浏览

android - 使用 Maven 在 GWT 中进行注释处理

我正在尝试让我的 android 应用程序使用与我的 gwt 应用程序相同的 requestfactories 与服务器通信。我使用 maven 来构建 android 应用程序和 gwt 应用程序。在 android 上进行请求工厂调用时出现异常:

我使用 java 1.6 进行构建。我的 gwt 版本是 2.4 (rc1)。我尝试使用 maven-processor-plugin 并导入 requestfactory-apt。但不知何故,maven 处理器插件似乎没有找到处理器。不确定配置的外观。

我有:

注释文件夹是在我的目标文件夹中创建的,但它是空的。有谁知道问题可能是什么?您还需要什么其他信息?

更新: 我将版本更改为 2.0.3-SNAPSHOT。现在我得到:

但此文件夹中没有文件。当我添加:

给我的pom。我收到错误消息:

现在我又被卡住了:-/

0 投票
1 回答
850 浏览

gwt - 接口/抽象类的带有 ValueType 的 RequestFactory

以下是我的域类

将 PersonProxy 创建为 EntityProxy 很简单,并且适用于 person.getName()

我已经将 VehicleProxy 创建为 ValueProxy 并使用 .with('vehicle') 调用了 fire() 但我收到错误消息:

域类型 com....AbstractVehicle$$EnhancerByCGLIB$$e86549b9 无法发送给客户端。

在 PersonProxy 我得到 @ProxyFor(value=Person.class,locator=PersonLocator.class)
在 VehicleProxy 我得到 @ProxyFor(value=Vehicle.class)

那么,如何在 RequestFactory 中处理这种继承?
我应该将 Vehicle 从 ValueProxy 更改为 EntityProxy 吗?
那么如何实现 VehicleLocator 的方法呢?

0 投票
1 回答
172 浏览

gwt - 我可以设置 EntityProxy 的默认字段值吗?

说我有这个:

创建的代理是空的。有没有办法为它的一些字段设置默认值?例如,这个代理有一个双精度的timeAllocation。是否可以将其设置为 0 而不必这样做:

谢谢

0 投票
4 回答
10183 浏览

gwt - 在复杂用例中使用 GWT 编辑器

我正在尝试创建一个与 Google 表单创建页面非常相似的页面。

在此处输入图像描述

这就是我尝试使用 GWT MVP 框架(地点和活动)和编辑器对其建模的方式。

CreateFormActivity(活动和演示者)

CreateFormView(视图接口,带有嵌套的 Presenter 接口)

CreateFormViewImpl(实现 CreateFormView 和 Editor<FormProxy>

CreateFormViewImpl 有以下子编辑器:

  • 文本框标题
  • 文本框说明
  • QuestionListEditor questionList

QuestionListEditor实现 IsEditor< ListEditor< QuestionProxy, QuestionEditor>>

QuestionEditor实现 Editor < QuestionProxy> QuestionEditor 有以下子编辑器:

  • 文本框问题标题
  • 文本框帮助文本
  • 值列表框问题类型
  • 下面每个问题类型的可选子编辑器。

每种问题类型的编辑器:

文本问题编辑器

段落文本问题编辑器

多项选择题编辑器

复选框问题编辑器

列表问题编辑器

ScaleQuestionEditor

网格问题编辑器


具体问题:

  1. 从表单中添加/删除问题的正确方法是什么。 (见后续问题
  2. 我应该如何为每种问题类型创建编辑器?我试图听 questionType 值的变化,我不知道之后该怎么做。(由 BobV 回答)
  3. 每个问题类型特定的编辑器都应该用 optionalFieldEditor 包装吗?因为一次只能使用其中一个。(由 BobV 回答)
  4. 如何最好地管理在对象层次结构深处创建/删除对象。例如)指定问题编号 3 的答案,该问题属于选择题类型。(见后续问题
  5. 可以使用 OptionalFieldEditor 编辑器来包装 ListEditor 吗?(由 BobV 回答)

基于Answer的实现

问题编辑器

问题库数据编辑器

示例子类型

剩下的唯一问题是没有显示或刷新 QuestionData 子类型特定数据。我认为这与我正在使用的编辑器设置有关。

例如,prompt 中的BooleanQuestionDataEditor值既未设置也未刷新,并且在 rpc 有效负载中为 null。

我的猜测是:由于 QuestionDataEditor 实现了 LeafValueEditor,驱动程序不会访问子编辑器,即使它已附加。

非常感谢任何可以提供帮助的人!!!

0 投票
1 回答
1153 浏览

gwt - GWT 请求工厂:请帮助解释一个完整的端到端 WriteOperation.DELETE 场景?

最近看了很多 gwt 请求工厂的例子,但仍然找不到完整的图片:

GWT 请求工厂的最佳选择是 CRUD(创建/读取/更新/删除)。话说回来:

  1. 即使在“更新”情况下,我也不清楚谁负责触发 EntityProxyChange(事件)

我在某处(忘记在哪里)读到客户端请求工厂保留它“看到”的 EntityProxy 的本地缓存,并且,如果它“看到”一个新缓存,那么它会触发一个 EntityProxyChange(事件)

这是否意味着,如果我的“updatePerson()”方法返回一个(新更新的)PersonProxy,那么本地客户端请求工厂基础设施是否“看到”这个新更新的人(即,凭借其更新的 versionId)然后它会自动触发 EntityProxyChange (Event) 吗?

  1. 在“删除”的情况下,假设我在请求上下文中创建了一个名为“deletePerson()”的函数,我了解请求是如何到达服务器的,并且可以执行例如 SQL DELETE 来删除实体,但是,谁负责触发 EntityProxyChange (Event) w/WriteOperation=DELETE ?这些事件会在服务器端触发吗?客户端?

我已经查看了 listwidget 示例(http://code.google.com/p/listwidget),但是,在“itemlist”删除时,它有点“作弊”,只需对整个文件进行蛮力刷新列表(尽管我确实理解该细节不一定是列表小部件首先要说明的);我本来希望看到一个 EntityProxyChange (Event) 处理程序来侦听 WriteOperation.DELETE 事件,然后只从 ListDataProvider 中删除该实体。

ServiceLayer/ServiceLayerDecorator.isLive() 是否会影响这些?

0 投票
0 回答
745 浏览

gwt - 使用 GWT 编辑器和 RequestFactory 编辑集合

有关上下文,请参阅原始问题

附加背景:

  • Objectify-Appengine 用于持久化。
  • FormProxy并且QuestionProxy是 EntityProxy 类型
  • QuestionDataProxy并且它的子类型是类型ValueProxy
  • 所有编辑器都实现HasRequestContext,并且在QuestionData子类型编辑器的情况下,HasRequestContext.setContext()从父级显式调用。

第一个问题与集合有关,第二个问题与多态类型有关。我不确定问题是否出在我使用 Editors 或 RequestFactory 的方式上。由于数据不存在于 RPC 有效负载中,我们可以排除持久性设置。

问题

QuestionProxy 的值在 RPC 请求中都是空的(如果 QuestionProxy 是新创建的,否则确定)

问题

Questions从表单中添加/删除的正确方法是什么。在使用编辑器时调用创建Question、编辑Form、更新方法的顺序是什么?QuestionData


当前解决方案

添加问题功能(在活动中):

要删除一个问题,我会在问题中标记一个标志,这会将其从服务器上的列表中删除,然后将其删除。(hack) 这仅适用于已保存的问题。

0 投票
1 回答
645 浏览

gwt - 具有不可变 ValueProxy 属性的 EntityProxies ->“找不到设置器”

我正试图将我的思想围绕 RequestFactory,但我遇到了一些问题。我有一个实体代理,它的属性是不可变类型的值代理(joda-time LocalDate),并且在对服务器的任何调用中使用此实体代理时遇到问题。

我通过仅在实体代理中包含属性的 getter,并且仅在 valueproxy 中包含原始属性的 getter,使该属性成为只读的。

但是,据我所知,如果我在调用服务方法时使用实体代理作为参数,任何引用的 valueproxy 都会自动标记为已编辑,并且其所有属性都包含在增量中?

这反过来又会导致 ReflectiveServiceLayer 在 LocalDate 上抛出一个关于缺少 setter 的异常。

我一直在考虑实现一个覆盖“setProperty”的ServiceLayerDecorator来解决这个问题,但我不确定这是否是一个好的解决方案。有没有“正确”的方法来解决这个问题?理想情况下,我希望 AbstractRequestContext 不要在对服务器的调用中包含不可变属性。

我正在使用 GWT 2.3

编辑:我创建了这样的解决方法,但我仍然不确定这是否是正确的方法: