我正在使用GWT在GAE/J上编写应用程序.在我的开发机器上,事情完美地运行 - 并且RPC总是以相同的顺序成功返回.当我部署到appengine时,某些RPC会失败,并且它们通常以不同的顺序返回.
测试环境如何包含这种可变性?是否有任何好的工具可以处理这个appengine?
当使用<g:LayoutPanel>在UiBinder.ui.xml文件,您可以指定<g:layer>标签.其他一些谷歌构建的小部件也有这样的特殊标签 - <g:tab>甚至还有一个子标签<g:header>.
如何为我自己的小部件指定这些?
我遇到了一个很大的问题 - 我同类数据存储区中的多个实体具有相同的ID!它们的键是Keys,但我一直假设key.getId()将返回一个在同一类型的所有实体中唯一的数字.
不是这样!不同的密钥可以返回相同的ID!Aurgh!我可以通过使用数据查看器来确认这一点 - 在id/name列中具有相同值的多个实体.具有重复键的实体都在不同的实体组中 - 它们具有不同的父键.我没有在同一个实体组中看到任何重复ID,但我不知道这不会发生.
我Long在我的实体中使用id,不仅要将它们存储在数据存储区中,还要引用其他实体.现在,我正在使用RequestFactory在客户端上创建()对象并持久化它们,但我需要一种方法来确定服务器生成的id.
这是我认为需要两次旅行的一种方式:
final OrganizationProxy proxy = context.create(OrganizationProxy.class);
context.persist().using(proxy).fire(new Receiver<Void>(){
public void onSuccess(Void response)
{
requestFactory.find(proxy.stableId()).fire(new Receiver<OrganizationProxy>()
{
public void onSuccess(OrganizationProxy response)
{
//hey, now response has the server-generated id in it, along with any other values the server populated
}
});
}
});
Run Code Online (Sandbox Code Playgroud)
但似乎必须有一种方法来获得持久的id而没有第二次旅行.似乎requestFactory.find()首先需要持久性id才能工作.
如何在没有第二次请求的情况下获取持久性ID?
======= =======更新
它最终发生在我身上(在tbroyer 告诉我之后 ;))我可以Long从RequestContext中的persist()方法返回id.这不会从中检索持久性ID EntityProxyId,但它确实在单个请求中获得了新对象的持久性ID.
我将这个问题保持开放 - 我仍然有兴趣从EntityProxyId中获取持久性id.
我有快速的打印介质分页功能page-break-after: always.我使用这些来分隔单个批量打印作业中的多个报表.不幸的是,当打印作业是双面的时,分页可能导致打印机在上一个报告的背面开始报告.
有没有办法强制分页到一个偶数页面?或者,或者,要检测某个元素将出现在哪个页码上?
我想测试一些依赖于网络传输的代码.代码发出请求并提供回调 - 当请求完成时,将触发回调.我想模拟网络传输,并Thread.sleep用来模拟一些延迟...但当然这将使整个测试暂停.
到目前为止,我一直在创建新线程并CountDownLatch在整个测试中使用es来阻止测试在回调被触发之前结束.我的模拟网络对象创建一个新线程,在该线程上休眠,然后触发回调.这实际上工作得很好,但问题是回调中的任何断言错误都没有报告给原始的junit线程 - 相反,我在控制台上获得了异常文本,在那里它更难理解和使用.
我希望有:
assertEquals生成的线程输出管道传输到主JUnit输出收集器的方法,或者谢谢你的任何想法!
当我使用chrome 访问https://wild.rileylark.appspot.com时,我得到了很好的"这是很棒的 "图标.当我使用firefox 4时,我得到了"omg,you're effed "消息:
wild.rileylark.appspot.com使用无效的安全证书.
该证书仅对以下名称有效:*.appspot.com,*.*.appspot.com,appspot.com
现在我使用remote_api并appcfg.py download_data每晚拍摄我的数据库的快照.这需要很长时间(6小时)并且很昂贵.如果没有滚动我自己的基于更改的备份(我不敢做那样的事情),那么确保我的数据安全无故障的最佳选择是什么?
PS:我认识到谷歌的数据可能比我的更安全.但是,如果有一天我不小心写了一个删除它的程序呢?
我想运行一个测试,我的GWT代码向我的AppEngine服务器发出请求并等待响应.我的服务器使用RESTEasy来设置请求路径.我的客户端使用一些AutoBean魔法,它使用GWT.create(),所以这个测试必须是一个GWTTestCase.
为测试设置appengine开发模式的完整模拟,我需要做什么?该文件提到的方法来建立每个AppEngine上依赖于个人的服务,但我想旋转起来,整个事情.
我需要冻结CellTable中的第一列和第一行数据,以便用户可以滚动数据但仍然可以看到"轴"上的标签.当用户向上和向下滚动时,第一列应滚动,当用户向左和向右滚动时,标题行应滚动.在Excel中考虑"冻结窗格".
我正在使用GWT 2.1并且如果没有解决方案,我愿意编写自己的小部件来执行此操作.我的问题是两个部分:
谢谢!