使用最新版本的Objectify(5.1),当我尝试访问ofy()方法时出现以下错误
你还没有开始Objectify上下文.你可能错过了ObjectifyFilter.如果未在http请求的上下文中运行,请参阅ObjectifyService.run()方法.
我从appengine Web应用程序运行它,相同的代码和配置在旧版本中运行良好
以下是我的配置,类似于objectify文档中提供的示例
web.xml中
<filter>
<filter-name>ObjectifyFilter</filter-name>
<filter-class>com.googlecode.objectify.ObjectifyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ObjectifyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
OfyService类
public class OfyService {
static {
long start = System.currentTimeMillis();
factory().register(User.class);
log.info(" Entity Registration took : {} ms", (System.currentTimeMillis() - start));
}
public static Objectify ofy() {
return ObjectifyService.ofy();
}
public static ObjectifyFactory factory() {
return (ObjectifyFactory) ObjectifyService.factory();
}
}
Run Code Online (Sandbox Code Playgroud)
但我确实定义了ObjectifyFilter,任何想法为什么我得到这个错误?我该如何解决?
谢谢!
更新:
我已将objectify版本更新到v5.1.5,但仍未解决此问题的任何更新问题?
我一直在使用单核心数据NSManagedObjectContext
,所有提取,保存,后台更新操作都将通过帮助程序类在单个上下文中完成,我计划实现多种NSManagedObjectContext
方法(这是大多数我推荐的解决方案)搜索).
我的问题是:是performBlock
唯一一个为该上下文执行代码的人吗?我们不能做类似下面的事情:
- (void) checkSyncServer {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
//do something here, check and fetch data
// create NSManagedObject's
[_tempContext save:&error];
//masterContext will merge changes through notification observers
});
}
Run Code Online (Sandbox Code Playgroud)
(即)执行除-performBlock
方法之外的代码.如何执行多个异步方法并执行保存?
但是,我发现单个上下文(由一个单例NSObject
类管理)更易于使用.
这个多重上下文ContextConcurrencyType
看起来更复杂(就执行流程而言).有更好的解决方案吗?
我经历了很多搜索结果,找不到我想要的东西,我一直在使用appengine很长一段时间,单一的战争目录很好,很容易.现在谷歌宣布Appengine模块可用于GA,我已阅读所有相关信息,我知道它是如何工作的.
我的问题是,如何在没有maven的情况下将模块添加到appengine?,我不想使用maven,我有点用GAE + Maven + Eclipse,没有热重新部署.
所以任何人都可以给我一个例子,说明如何在没有maven支持的情况下将模块添加到appengine app.
另一个问题是,我知道很多人正在使用maven的appengine,但我尝试了很多来使所有三个(GAE + maven + eclipse)工作,但我不能.
所以人们使用maven的appengine,你们可以推荐更好的使用方法吗?
谢谢!
我有一个视图,我想在键盘显示时改变它的位置,我使用UIKeyboardWillShowNotification委托来更新位置,它在IOS 7设备中完美运行但是当我尝试在IOS 8设备中运行它时,视图没有重新定位,框架更新,因为我可以在日志中看到它.
以下是我的代码
-(void) keyboardWillShow:(NSNotification*) notification{
@autoreleasepool {
CGRect frame = _loginFrame.frame;
frame.origin.y-=200;
DLog(@"login frame %@ ",NSStringFromCGRect(frame));
[UIView animateWithDuration:0.25 animations:^{
[_loginFrame setFrame:frame];
}];
}
Run Code Online (Sandbox Code Playgroud)
}
但是,当我在dispatch_after中尝试动画时阻止其动画到新位置
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[UIView animateWithDuration:0.25 animations:^{
[_loginFrame setFrame:frame];
}];
});
Run Code Online (Sandbox Code Playgroud)
知道为什么没有dispatch_after框架没有动画到新位置?
谢谢!
注意:它看起来像setFrame:方法不起作用,不知道为什么,我已经创建了一个基本的ios 8应用程序来测试这个
2014-09-11 18:59:54.836 KeyboardCheck [31215:1451974]键盘显示2014-09-11 18:59:54.837 KeyboardCheck [31215:1451974] 旧框架{{ 60,269 },{ 200,30 }} 2014 -09-11 18:59:54.837 KeyboardCheck [31215:1451974] 更新帧{{ 60,169 },{ 200,30 }} 2014-09-11 18:59:55.339 KeyboardCheck [31215:1451974] 完成块帧{ { …
我知道默认情况下,JAX-RS端点的生命周期是每个请求一次,因此可以将请求特定的信息注入实例中。
我们还可以使端点Singleton表示每个应用一次,在该端点中,不能将请求特定的信息注入实例,而可以将其注入请求的方法。
1.因此,我想知道哪种方法在性能方面更好,无论是每个请求一次还是每个应用程序一次。
2.我还想了解这些方法的优缺点,以及注射要求的特定信息
3.您希望在API应用程序中使用哪种方法
注意:到目前为止,我一直在使用“每次请求一次”的方法,但是我一直想知道这是有效的,肯定是它使编码更容易且可重复使用。