我正在使用 play framework 1.2.5 作业 - 在等待之后,我以 JSON 格式向 Web UI 发送消息。不使用作业时,相同的 JSON 逻辑可以正常工作 - 但是,在使用作业和等待之后,JSON 消息似乎包含无效字符(客户端 javascript 不再将其识别为有效 JSON)。浏览器不会呈现乱码/无效字符 - 我将尝试使用 wireshark 看看是否可以添加更多详细信息。关于可能导致这种情况以及如何最好地防止这种情况的任何想法?在此先感谢(我有理由确定是我的代码导致了问题,因为我不能成为第一个这样做的人)。我还将尝试使用 executors/futures 而不是玩工作进行测试,看看情况如何。
Promise<String> testChk = new TestJobs(testInfo, "validateTest").now(); //TestJobs extends Job<String> & I'm overriding doJobWithResult. Also, constructor for TestJobs takes two fields (type for testInfo & String)
String testChkResp = await(testChk);
renderJSON(new TestMessage("fail", "failure message")); //TestMessage class has two String fields and is serializable
更新:我正在使用 gson & JDK1.6
更新 似乎每当我使用播放作业和 renderJSON 时,编码都会出现问题。
TestMessage:(不使用作业时有效)
导入 java.io.Serializable;
public class TestMessage {
public String status;
public String response;
public TestMessage() {
}
public TestMessage(String status, String response) {
this.status = status;
this.response = response;
}
}
更新: 即使在依赖作业时使用以下结果也会产生 utf-8 影响。
RenderJSON("test");