问题标签 [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 回答
616 浏览

java - 将 GWT RequestFactory 与 Grails 一起使用时的 ClassLoader 问题

为了让 GWT RequestFactory 与 Grails 一起运行,我使用以下方法:

其中 DummyServletConfig 是一个简单的实现ServletConfig

这在将应用程序部署到 tomcat 时有效。但是,使用测试或开发模式,它不是。我被要求调整 GWT Servlet 以防止它使用错误的类加载器:

在第 46 行我改变了

否则,它不会找到我的 Domain 类(它们显然不在 GrailsRootLoader 中,而是在 Thread 的类加载器中)。

现在我想将我的 GWT servlet 恢复为 Google 发布的官方二进制文件,我想知道如何在 Grails 中修复不正确的 ClassLoader 或在不更改 GWT 源的情况下使 RequestFactoryServlet 正常工作。

0 投票
1 回答
580 浏览

gwt - GWT 嵌入 ValueProxy 堆栈溢出错误

如果我有 PersonProxy {String getName(); PersonProxy getParent();} 我尝试通过 RequestFactory 提供的 Request 对象从服务器加载它,它因堆栈溢出错误而崩溃。它试图无限期地调用 hashCode()。

任何想法为什么会发生这种情况?

谢谢。

0 投票
1 回答
459 浏览

java - 如何在 requestfactory 使用的域对象中访问当前请求?

我正在使用 GWT 请求工厂。当我在扩展 RemoteServiceServlet 的普通 RPC 类中时,我可以使用this.getThreadLocalRequest().

现在我在一个域对象中。如何访问当前请求?我需要得到getThreadLocalRequest().getRemoteUser()

0 投票
1 回答
983 浏览

smartgwt - GWT mvp:Places、RequestFactory 和 SmartGwt 和 gwt-sl

我是 GWT 和 MVP 的新手,并且已经探索了一些库(gwt-sl、gwt-presenter、gwt-dispatch)和框架(smartgwt ..),我感到非常困惑。我决定坚持使用 smartgwt ui 组件和 gwt mvp 来处理它们。smartgwt 使用我希望理想扩展的数据源进行建模(并使用 dto(或使用 gwt 的请求工厂的代理对象)填充)。但是我现在还没有掌握所有这些的窍门。

a) 在谷歌列出的 gwt mvp 中,一个地方的具体状态是什么?我们总是派人去一个新地方吗?如果没有并且历史维护位置令牌,那么状态是如何加载的?

b) 从另一篇关于gwt mvp 的帖子中,模型在哪里?我们大多数人调整到典型的 mvc 设计范式会假设模型状态存在于演示器中。我想那么正如其他地方所建议的那样,clientfactory 将是在存储视图中显示当前模型的合适位置?

c) 我想知道是否可以尝试使用 requestfactory 来填充 smartgwt 数据绑定组件?(据我了解,使用 smartgwt 服务器端框架基本上做同样的事情.. 只通过网络传输对象图中的变化?)

d)在 David Chandler 的幻灯片的第 47 页上,我不太理解所提议的布局。(2个placeChangeHandler?每个活动管理器的2组widgetList?有人可以解释一下吗?

e) 任何人都可以分享他们使用gwt-sl的经验(用于服务器端 spring 集成?)

在此先感谢所有 gwt 大师

0 投票
1 回答
1341 浏览

gwt - 使用 RequestFactory 和 Objectify 时出现一个奇怪的异常

我查看了 Google IO gwtgae2011中的示例并让它工作。我试图向项目添加一些功能,并且不断从服务器获取异常(调用了 onFailure 方法)并且堆栈跟踪是

我创建了名为 Sketch2 的 Sketch 类的精确克隆,并在我的 RequestFactory 接口中创建了 SketchDao、SketchProxy 和 SqetchRequest 的克隆。

无论如何都会抛出异常。(我尝试重新编译、重新启动、清理生成的文件,尝试使用 IDEA - 同样的问题)任何想法为什么会发生这种情况?

0 投票
1 回答
918 浏览

gwt - GWT 中的 requestfactory 和 findEntity 方法

我正在尝试使用 RequestFactory。我的 ORM 提供者是 JPA。我有一个方法来检索一个名为 findAll() 的实体列表。当用户请求实体列表时,调用 findAll。Find all 对数据库执行查询并返回实体列表。但是,当 requestFactory 被要求将此列表发送回用户时,requestfactory 会为列表中的每个实体调用 findEntity()。

我的问题是:有什么方法可以指示请求工厂不要为列表中的每个项目调用查找实体?

0 投票
1 回答
3815 浏览

gwt - 使用 Guice 注入 GWT RequestFactory 配置 servletModule 的问题

我想在 GWT 2.3 RequestFactory 的服务器端使用 GUICE。我的类扩展了 ServletModule:

在 web.xml 中我添加了:

我引用了validation-api.XXX.jar(因为它是GWT的一部分)

当我运行它时(在带有 GWT 插件的 Eclipse 下),它说:

jetty-6.1.x [WARN] guiceFilter 失败:com.google.inject.ProvisionException:Guice 配置错误:

1) 注入构造函数时出错,java.lang.NoClassDefFoundError: javax/validation/ValidationException at com.google.web.bindery.requestfactory.server.RequestFactoryServlet.(RequestFactoryServlet.java:74) at com.djay.eyeandtrack.server.EatServletModule。 configureServlets(EatServletModule.java:13) 同时定位 com.google.web.bindery.requestfactory.server.RequestFactoryServlet

1 错误 [WARN] 上下文 com.google.apphosting.utils.jetty.DevAppEngineWebAppContext@17b3de2{/,C:\5_DJAY\03_EYEANDTRACK\branches\djaysbox\EyeAndTrack\war} com.google.inject.ProvisionException 启动失败:Guice 配置错误:

1) 注入构造函数时出错,java.lang.NoClassDefFoundError: javax/validation/ValidationException at com.google.web.bindery.requestfactory.server.RequestFactoryServlet.(RequestFactoryServlet.java:74) at com.djay.eyeandtrack.server.EatServletModule。 configureServlets(EatServletModule.java:13) 同时定位 com.google.web.bindery.requestfactory.server.RequestFactoryServlet

在 com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1009) 在 com.google.inject.servlet 的 com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:987) 出现 1 个错误。 ServletDefinition.init(ServletDefinition.java:108) 在 com.google.inject.servlet.ManagedServletPipeline.init(ManagedServletPipeline.java:82) 在 com.google.inject.servlet.ManagedFilterPipeline.initPipeline(ManagedFilterPipeline.java:102) 在 com .google.inject.servlet.GuiceFilter.init(GuiceFilter.java:172) 在 org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97) 在 org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java :50) 在 org.mortbay.jetty.ServletHandler.initialize(ServletHandler.java:662) 在 org.mortbay.jetty.servlet.Context.startContext(Context.java:140) 在 org.mortbay.jetty.webapp。WebAppContext.startContext(WebAppContext.java:1250) 在 org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) 在 org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) 在 org .mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 在 org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 在 org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) ) 在 org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 在 org.mortbay.jetty.Server.doStart(Server.java:224) 在 org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle. java:50) 在 com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:186) 在 com.google.appengine.tools.development.AbstractContainerService。com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:169) 的启动(AbstractContainerService.java:157) com.google.appengine.tools.development.gwt.AppEngineLauncher.start(AppEngineLauncher.java: 119) com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:500) com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1055) com.google.gwt.dev.DevModeBase .run(DevModeBase.java:804) at com.google.gwt.dev.DevMode.main(DevMode.java:309) 原因:java.lang.NoClassDefFoundError: javax/validation/ValidationException at com.google.web.bindery .requestfactory.server.ServiceLayer.create(ServiceLayer.java:74) 在 com.google.web.bindery.requestfactory.server.RequestFactoryServlet.(RequestFactoryServlet.java:88) 在 com.google.web.bindery.requestfactory.server。请求工厂Servlet。(RequestFactoryServlet.java:74) 在 com.google.web.bindery.requestfactory.server.RequestFactoryServlet$$FastClassByGuice$$54253391.newInstance() 在 com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor. java:40) com.google.inject.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:60) com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) com.google.inject。 internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254) 在 com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) 在 com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java :1031) 在 com.google.inject.internal.ProviderToInternalFactoryAdapter。get(ProviderToInternalFactoryAdapter.java:40) at com.google.inject.Scopes$1$1.get(Scopes.java:65) at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40) at com.google .inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024) at com.google.inject.internal.InjectorImpl$4.get( InjectorImpl.java:974) ... 26 更多原因:java.lang.ClassNotFoundException: javax.validation.ValidationException at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method)在 java.net.URLClassLoader.findClass(Unknown Source) 在 java.lang.ClassLoader.loadClass(Unknown Source) 在 com.google.appengine.tools.development.IsolatedAppClassLoader。loadClass(IsolatedAppClassLoader.java:176) at java.lang.ClassLoader.loadClass(Unknown Source) ... 42 更多

我可能遗漏了一些东西,但我不知道在哪里看...谢谢

0 投票
1 回答
1990 浏览

gwt - 如何使用带有 Driver 和 RequestFactory 的编辑器编辑 GWT CellTable 中的列表项

以下代码段成功显示了 Cat 列表,但是当我刷新驱动程序时,Cat 对象中的值全部为空。

猫屋的名称可以按预期进行编辑。

这是我创建请求的方式。(改编自 MobileWebApp 示例项目)

在 taskPersistRequest 变量被触发之前,我已经对其进行了检查。

  • taskPersistRequest.propertyRefs = [猫屋]

  • taskPersistRequest.requestContext 具有 CatHouse 和 Cats 的正确值。

  • taskPersistRequest.requestData.parameters 只有一个 CatHouse 的值,没有与 Cats 相关的数据。(这看起来像问题

  • 上下文中的 editProxies 变量具有 CatHouse 和 Cat 的正确值。

0 投票
1 回答
1086 浏览

gwt - 如何使用 Guice 在 GWT 的服务层 (DAO) 类中 @Inject HttpSession 对象?

我的 GWT 应用程序中有这么脏的代码,我的服务层的一些类依赖于HttpSession对象。例如,在我的一个 DAO(它是一个 GWT-RPC 端点)中,我有这样的东西:

问题是,我目前正在迁移代码以使用 RequestFactory。我的 DAO 将不再是 GWT-RPC 端点。所以不需要扩展 RemoteServiceServlet ......

你知道我如何获取/注入(可能使用Guice)我对 HttpSession 对象的依赖,知道我的类不再扩展 RemoteServiceServlet 吗?

0 投票
1 回答
1432 浏览

gwt - 使用 GWT 的 RequestFactory 时防止 CSRF

我刚刚开始将我的 GWT-RPC 代码移植到新RequestFactory机制。

为了防止跨站点请求伪造 (CSRF),我的 GWT-RPC 代码抓取了已存储在 cookie 中的会话 id,并将其包含在请求的负载中。这可能RequestFactory吗?

我了解有四种强制性定位器方法,包括findEntity(id_type id):所以我在想:哦,亲爱的:我在哪里放我的会话ID?