我有我认为是一个简单的问题,但一直无法解决...出于某种原因,我有一个使用removeFrom*.save()的控制器,它不会抛出任何错误但不会做任何事情.
运行Grails 1.2 Linux/Ubuntu
剥离以下应用程序以重现问题...
我有两个域对象通过create-domain-class - Job(有很多笔记) - 注意(属于Job)
我有3个控制器通过create-controller - JobController(运行脚手架) - NoteController(运行脚手架) - JSONNoteController
JSONNoteController有一个主要方法deleteItem,旨在删除/删除注释.
它做了以下
当我运行此请求时 - 我没有得到任何错误,但似乎jobInstance.removeFromNotes(noteInstance).save()什么都不做,并且不会抛出任何异常等.我怎样才能找到原因?
我附加了一个示例应用程序,它通过BootStrap.groovy添加一些数据.只需运行它 - 您可以通过默认的脚手架视图查看数据.
如果你运行linux,从命令行运行以下GET" http:// localhost:8080/gespm/JSONNote/deleteItem?job.id = 1¬e.id = 2 "
你可以一遍又一遍地运行它,没有任何不同的事情发生.如果您正在运行Windows,也可以将URL粘贴到Web浏览器中.
请帮忙 - 我被困了!代码在这里是链接文本
注意域名
package beachit
class Note
{
Date dateCreated
Date lastUpdated
String note
static belongsTo = Job
static constraints =
{
}
String toString()
{
return note
}
}
Run Code Online (Sandbox Code Playgroud)
工作领域
package beachit
class Job
{ …Run Code Online (Sandbox Code Playgroud) 我需要将一个具有本机登录屏幕的应用程序与在 webview (混合应用程序)内运行的应用程序的其余部分集成。这听起来像是一种常见的方法,但我在将会话数据(cookie)从本机代码传输到 webview 时遇到问题,我认为这与 CookieManager 的异步行为有关。
有时,在某些设备上,cookie 要么被删除,要么不应用。据我所知,这可能是因为removeSessionCookie、setCookie 和sync 在它们自己的线程中异步运行。我不太理解来自其他编程语言的 Java 中的这一点,因为似乎没有任何钩子可以知道任务何时完成 EG 回调、事件、asyc/await 等。
那么问题是如何知道 Android/Java 中的异步任务何时完成?我遇到过同步块语法,但它看起来不会等待诸如removeSessionCookie之类的事情完成。
我的代码看起来有点像这样:
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeSessionCookie(); // problem
CookieSyncManager.getInstance().sync(); // maybe problem
List<Cookie> cookies = httpClient.getCookieStore().getCookies();
for (int i = 0; i < cookies.size(); i++) {
Cookie cookie = cookies.get(i);
String cookieString = cookie.getName() + "=" + cookie.getValue();
cookieManager.setCookie(url, cookieString);
}
CookieSyncManager.getInstance().sync();
Run Code Online (Sandbox Code Playgroud)