2

我正在使用 FB cookie 并尝试将其解码为 json,代码看起来与此类似

    def value = cookie.value

    String[] tokens = value.split('\\.')
    String decodeToken = new String(Base64.decodeBase64(tokens[1].getBytes()), 
            'UTF-8')
    def jsonValue = JSON.parse(decodeToken)

cookie 是 facebook 在使用登录插件时创建的。

现在,当我使用 run-app 运行它时,没有任何问题。但是,当使用 run-war 运行它时,当 JSON 解析器尝试从字符串创建 JSON 对象时会引发异常。

引起:org.codehaus.groovy.grails.web.json.JSONException:在 {"algorithm":"HMAC-SHA256","code":"AQCvjV... ...."user_id":...50089"\00\00

进一步调试它,似乎从解码调用创建的字符串在运行应用程序的上下文中运行时很好。但是当 run-war 完成时,String 的最后一个字符不是 '}' 而是一些乱码字符 - 这就是导致解析器抛出异常的字符。

这可能是什么原因?什么是开始进一步调试的好点?

我什至尝试使用特定的编码来调用 getBytes() - 但无济于事。

4

1 回答 1

0

run-app 运行 grails 应用程序并允许从资源重新加载

run-war 生成一个war文件并运行war文件,所以不需要重新加载资源。

您可以手动执行 grails war,然后在本地 tomcat 实例上运行它。

于 2012-04-20T14:43:14.057 回答