问题标签 [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 投票
2 回答
847 浏览

java - Google Web Toolkit 自动刷新网格

我实现了一个应用程序,其中有一个网格,每次有人在这个网格上更改某些内容时,它都会自动为打开网格的其他人更新网格(就像谷歌文档所做的那样)。

我尝试使用 gwt-rpc 每 2 秒发送一个请求来实现这一点,如果有新内容,应用程序只需发送已更改的内容。但是当我上传到 GAE 服务器时,我得到了一些不好的结果。

所以我决定分析谷歌文档的实现,并看到它保持开放连接近一分钟,并在每次有人更改某些内容时发送一些新信息。我想知道是否可以在 GWT 上做这样的事情。我现在正在尝试使用请求工厂来做到这一点,但我想我会面临同样的问题。

有任何想法吗?

0 投票
1 回答
862 浏览

gwt - stableId 有多稳定?

JavaDocEntityProxy.stableId()说:

这是否意味着稳定的 id 将在不同的请求上下文中对该对象有效?跨不同的请求工厂实例?我想我问的是稳定ID的范围是什么?

0 投票
1 回答
850 浏览

gwt - JPA 和 RequestFactory:外键的持久性

在我的 JPA 实体类中,我有:

在我的 GWT 视图中,我有:

///////////////////

UsersBookings没有用户约束的持久性工作正常。但是使用上面的代码,我希望/必须将 ID 为“12”的用户分配给新创建的预订。但我无法将新预订分配给已经存在的用户 ID 12。我收到以下错误:

[EL 警告]:2011-07-05 18:48:45.464--UnitOfWork(267787945)--异常 [EclipseLink-4002] (Eclipse Persistence Services - 2.3.0.v20110604-r9504): org.eclipse.persistence.exceptions .DatabaseException 内部异常:org.firebirdsql.jdbc.FBSQLException:GDS 异常。335544665. 违反表“USERS2”上的 PRIMARY 或 UNIQUE KEY 约束“INTEG_388”

这是因为 ID 为“12”的用户已经存在,而 JPA 想要创建一个具有相同 ID 的新用户,而不是仅仅创建一个以用户 ID“12”作为外键的新预订。

如何告诉RequestFactory不要创建新用户,而只是将现有用户的用户 ID 分配给新的预订条目?

0 投票
1 回答
1880 浏览

gwt - GWT 2.4 的问题

我在 svn 中编译了标记为 gwt2.4rc 的版本。现在比我上次多了几个库。关于什么需要哪个库的任何说明?我仅使用标准库(servlet、servlet-deps、user)进行了尝试,但在进行 requestfactory 调用时出现以下错误:

java.lang.NoSuchMethodError: com.google.gwt.core.client.impl.WeakMapping.setWeak(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)

我尝试将 requestfactory-client 和 requestfactory-server jar 声明为依赖项,但我没有帮助。我正在使用 Maven 来管理我的依赖项。我会回到 2.4 beta,但我需要稍后介绍的拖放功能。有人知道可能出了什么问题吗?或任何提示我如何更深入地研究这个?我花了很多时间试图解决这个问题,但没有成功:(我需要提供更多信息吗?

问候,阿恩

0 投票
3 回答
1732 浏览

gwt - 在 Tomcat 上运行 GWT 2.4 应用程序时出现问题

我在 tomcat 中运行我的 gwt2.4rc1 应用程序时遇到问题。当我尝试进行 requestfactory 调用时会出现问题。然后我在底部得到异常。

当我在开发模式下运行 GWT 时,一切正常。gwt 开发。jar 在我的 webapp 的 lib 文件夹中。我正在使用 Maven 进行依赖管理。我的配置可能有问题吗?我已经遇到了 gwt2.4 beta 的错误。如果需要解决此问题的任何其他信息,我很乐意提供。

问候, 阿恩

严重:意外错误 com.google.web.bindery.requestfactory.server.UnexpectedException:com.google.web.bindery.requestfactory.server.ServiceLayerDecorator.die(ServiceLayerDecorator.java:216) 在 com.google.web 的意外检查异常.bindery.requestfactory.server.ServiceLayerCache.getOrCache(ServiceLayerCache.java:242) 在 com.google.web.bindery.requestfactory.server.ServiceLayerCache.resolveRequestFactory(ServiceLayerCache.java:198) 在 com.google.web.bindery.requestfactory .server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:201) 在 com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:125) 在 com.google.web.bindery.requestfactory.server.RequestFactoryServlet .doPost(RequestFactoryServlet.java:133) 在 javax.servlet.http.HttpServlet。service(HttpServlet.java:641) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:261) at com.google.inject .servlet.ServletDefinition.service(ServletDefinition.java:175) 在 com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91) 在 com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62 ) 在 org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) 在 org.apache.shiro 的 org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)。 web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) 在 com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:162) 在 com.google.inject.servlet。FilterChainInvocation.doFilter(FilterChainInvocation.java:58) at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118) at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113) at org .apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:242) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve .java:240) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) 在 org.apache.catalina.org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:203)。 Valves.ErrorReportValve.invoke(ErrorReportValve.java:108) 在 org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:558) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379) 在 org.apache.coyote.http11 .Http11Processor.process(Http11Processor.java:242) 在 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:259) 在 org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint .java:281) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 在 java.lang.Thread.run( Thread.java:636) 引起:java.lang.NoClassDefFoundError: com/google/gwt/dev/util/StringKey at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader。defineClass(ClassLoader.java:634) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2804) at org.apache.catalina.loader .WebappClassLoader.findClass(WebappClassLoader.java:1144) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1639) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1517) 在com.google.web.bindery.requestfactory.server.RequestFactoryInterfaceValidator.validateProxy(RequestFactoryInterfaceValidator.java:1594) 在 com.google.web.bindery.requestfactory.server.RequestFactoryInterfaceValidator.validateEntityProxy(RequestFactoryInterfaceValidator.java:828) 在 com.google。 web.bindery.requestfactory.server。RequestFactoryInterfaceValidator.maybeCheckProxyType(RequestFactoryInterfaceValidator.java:1540) 在 com.google.web.bindery.requestfactory.server.RequestFactoryInterfaceValidator.getDomainType(RequestFactoryInterfaceValidator.java:1374) 在 com.google.web.bindery.requestfactory.server.RequestFactoryInterfaceValidator.createDomainMethod( RequestFactoryInterfaceValidator.java:1192) 在 com.google.web.bindery.requestfactory.server.RequestFactoryInterfaceValidator.checkClientMethodInDomain(RequestFactoryInterfaceValidator.java:1079) 在 com.google.web.bindery.requestfactory.server.RequestFactoryInterfaceValidator.validateRequestContext(RequestFactoryInterfaceValidator.java: 909) 在 com.google.web.bindery.requestfactory.server.RequestFactoryInterfaceValidator.validateRequestFactory(RequestFactoryInterfaceValidator.java:964) 在 com。com.google.web.bindery.requestfactory.server.ServiceLayerDecorator.resolveRequestFactory(ServiceLayerDecorator.java:172) 上的 google.web.bindery.requestfactory.server.ResolverServiceLayer.resolveRequestFactory(ResolverServiceLayer.java:187)。 bindery.requestfactory.server.ServiceLayerDecorator.resolveRequestFactory(ServiceLayerDecorator.java:172) 在 com.google.web.bindery.requestfactory.server.ServiceLayerDecorator.resolveRequestFactory(ServiceLayerDecorator.java:172) 在 com.google.web.bindery.requestfactory。 server.ServiceLayerDecorator.resolveRequestFactory(ServiceLayerDecorator.java:172) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl。com.google.web.bindery.requestfactory.server.ServiceLayerCache.getOrCache(ServiceLayerCache.java:233) 的 java.lang.reflect.Method.invoke(Method.java:616) 的调用(DelegatingMethodAccessorImpl.java:43) .. . 32 更多原因:java.lang.ClassNotFoundException: com.google.gwt.dev.util.StringKey at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1672) at org.apache.catalina.loader .WebappClassLoader.loadClass(WebappClassLoader.java:1517) ... 57 更多1672) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1517) ... 57 更多1672) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1517) ... 57 更多

0 投票
1 回答
566 浏览

gwt - GWT 请求工厂 - 同一实体类型的多个实体定位器

我希望能够为同一个域对象使用不同的实体定位器。我使用Twig它,它可以选择完全或部分加载对象。当我运行 lite 请求fetchRangeLite时,使用定位器TwigLocator而不是TwigLiteLocator. 我目前的实现是:

代理

要求

我期待使用 lite 定位器,但事实并非如此。那么 RF 如何为特定的域类型选择它应该使用的定位器呢?

更新

我的域对象由列表列表组成。

当我的MyDomain对象的代理从服务器发送到客户端时,Twig还会加载所有A' 和所有B',这需要时间。我只对MyDomain对象中的属性感兴趣,这就是我想使用“lite”定位器的原因。

树枝定位器

TwigLite 定位器

myDatastore.setActivationDepth(0);告诉数据存储仅加载其中的属性MyDomain,而不加载子级别(列表)属性。

DAO 实现是相同的,因此两个代理的 ID 和版本相同。

0 投票
2 回答
475 浏览

android - AppEngine RequestFactory 还是“正常”方法?

这不是一个真正的问题,更像是一个一般的 X 与 Y 问题。

所以我正在使用用谷歌应用引擎编写的服务器在 android 上试验 c2dm。目前,我正在使用“App Engine Connected Android Project”作为模板,并自己添加了一些代码。所以生成的代码将 RequestFactory 用于一堆东西,比如注册/注销设备、发送消息等。

我以前在后端通信方面的经验是建立与 servlet 的连接、写入它 (json) 和读取响应 (json)。

那么问题来了: 使用 RequestFactory 与应用程序引擎进行通信而不是仅仅从 URLConnection 的输入/输出流中写入/读取有什么好处(如果有的话)?还是真的只是口味问题?

0 投票
2 回答
735 浏览

gwt - 取消 GWT RequestFactory 请求

有没有办法取消/中止请求工厂请求?使用 GWT 2.3

0 投票
1 回答
432 浏览

gwt - 如何过滤 GWT requestFactory 结果?

我有一个关于如何在 GWT 中使用 RequestFactory 进行数据过滤的问题。我目前正在开发一个由 MySQL 数据库支持的应用程序。我的持久层基于 JPA/Hibernate。我正在使用 RequestFactory 来查询我的数据库以获取所有与列表相关的操作。

例如,我有一个 Person 对象:在我的 PersonRequestContext 中,我有一个允许我列出人员的方法。方法签名是:

您可能已经猜到了,相应的查询是这样的:

现在,我想根据表格列过滤结果。所以我想用某种Filter类抽象来解决它。问题是我们都知道,不可能将非原始对象传递给 requestFactory 方法。

你有没有经历过这样的事情?你是如何处理它来解决问题的?

0 投票
1 回答
1623 浏览

gwt - 分析 GWT 应用程序以查找内存泄漏

我们在 Tomcat 上部署了一个基于 GWT 的应用程序。每隔一天,应用程序就会因 OutOfMemoryException 而崩溃。因此,当应用程序接近使用最大分配内存时,我已经开始对其进行堆转储。

应用程序的行为如下,

  1. 用户登录到应用程序
  2. 输入要使用集群设置在服务器上分析的应用程序的输入。
  3. 客户端每 15 秒轮询一次服务器以获取作业状态并更新 UI 控件。轮询是使用 requestfactory 调用从服务器中提取一些数据来完成的。
  4. 如果工作完成,我们使用弹性表向用户显示结果。大约有 1000 行,6 列。

堆转储,

我们使用 jmap 对 tomcat 进程进行了堆转储,以查看内存中的内容。以下图片是使用带有堆转储的 Eclipse 内存分析器拍摄的。

堆转储概述

统治者树

支配树

扩展的支配树

我们可以看到在堆中保留了大量的 hashmap 条目,保留大小为 25k,其中大约有 600 万个。

问题:

  1. com.google.gwt.core.client.impl.WeakMapping 显示 16 字节的浅堆,但保留的堆几乎是我们为应用程序分配的所有内存。
  2. 是不是因为我们每 15 秒轮询一次服务器并检索以某种方式被引用而不是 GC 的数据。
  3. 我们如何取消引用这些哈希图。
  4. 它与这里提到的场景完全不同吗?

到目前为止,我们在分析应用程序时使用了 jconsole、jprofiler、MAT、jhat。而且我们不知道问题出在哪里。

感谢你的帮助。