小编sub*_*sub的帖子

removeFrom*不工作且没有错误

我有我认为是一个简单的问题,但一直无法解决...出于某种原因,我有一个使用removeFrom*.save()的控制器,它不会抛出任何错误但不会做任何事情.

运行Grails 1.2 Linux/Ubuntu

剥离以下应用程序以重现问题...

我有两个域对象通过create-domain-class - Job(有很多笔记) - 注意(属于Job)

我有3个控制器通过create-controller - JobController(运行脚手架) - NoteController(运行脚手架) - JSONNoteController

JSONNoteController有一个主要方法deleteItem,旨在删除/删除注释.

它做了以下

  • 一些请求验证
  • 从作业中删除注释 - jobInstance.removeFromNotes(noteInstance).save()
  • 删除注释 - noteInstance.delete()
  • 将状态和剩余数据集作为json响应返回.

当我运行此请求时 - 我没有得到任何错误,但似乎jobInstance.removeFromNotes(noteInstance).save()什么都不做,并且不会抛出任何异常等.我怎样才能找到原因?

我附加了一个示例应用程序,它通过BootStrap.groovy添加一些数据.只需运行它 - 您可以通过默认的脚手架视图查看数据.

如果你运行linux,从命令行运行以下GET" http:// localhost:8080/gespm/JSONNote/deleteItem?j​​ob.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)

grails

4
推荐指数
2
解决办法
3682
查看次数

CookieManager-如何管理异步方法-removeSessionCookies

我需要将一个具有本机登录屏幕的应用程序与在 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)

cookies android asynchronous webview

2
推荐指数
1
解决办法
2412
查看次数

标签 统计

android ×1

asynchronous ×1

cookies ×1

grails ×1

webview ×1