public void OnGetCallRecordRspEnd() {
String Jsondata = JsonUtil.listToJson(list);
HttpServletResponse response = CallingLogAction.g_response;
OutPut.responseWritejson(response,Jsondata);
}
OutPut.responseWritejson的实现在这:
public static void responseWritejson(HttpServletResponse response,String json) {
response.setContentType("application/json;charset=utf-8");
if (json != null) {
try {
response.getWriter().write(json);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
这里的response我已经设置为全局的了,所以在动态库回调的函数OnGetCallRecordRspEnd() 中,传给OutPut.responseWritejson()的response不是库线程的response。可是为什么我的 前台ajax 通过请求,返回的数据接受不到?也就是我response.getWriter().write(json);没有把json值传给前台,为什么、。我感觉是request和response对应出错了,可是,怎么解决呢?~~~
求大神啊~~~~~
谢谢~~~~
}
11 个解决方案
#1
json 格式正确不
#2
我确定是正确的。
System.out.println()出来了
#3
json封装的值为:[{"strBitrate":"","strCallIP":"192.168.7.222","strCallTime":"2014-5-7 14:12:43","strCallType":"呼出","strProtocol":"H323","strTime":"00:00:01"},{"strBitrate":"","strCallIP":"92.168.7.151","strCallTime":"2014-5-7 14:12:41","strCallType":"未接","strProtocol":"H323","strTime":"00:00:00"}]
#5
1.线程问题使用ThreadLocal的全局对象保存response
2.输出后要调用writer的flush方法
2.输出后要调用writer的flush方法
#6
谢谢,你的参考我看了。
现在我的问题是,在终端回调函数的那个线程里面 response.getWriter().write(json)是无法把值传给前台的request请求。
#7
你前台怎么写的。 你配置的是application/json;
画面要用json 来处理。
画面要用json 来处理。
#8
$.ajax({
type: "POST",
url:"CallingLog",
dataType:"json",
contentType: "application/json; charset=utf-8",
success: function (Jsondata) {
这是前台,没有错。我感觉 就是 request和response错位的问题
#9
打印错误看看 error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}
#10
谢谢~~
这个问题已经解决了~
因为消息根本无法返回到前端。应该返回前端的消息被阻塞了。
我在需要响应的地方设置了sleep,等到终端的参数全部接受完了之后,将消息拿来再进行response。
#11
我也遇到此问题,想问下你这边是怎么解决的?
#1
json 格式正确不
#2
json 格式正确不
我确定是正确的。
System.out.println()出来了
#3
json 格式正确不
json封装的值为:[{"strBitrate":"","strCallIP":"192.168.7.222","strCallTime":"2014-5-7 14:12:43","strCallType":"呼出","strProtocol":"H323","strTime":"00:00:01"},{"strBitrate":"","strCallIP":"92.168.7.151","strCallTime":"2014-5-7 14:12:41","strCallType":"未接","strProtocol":"H323","strTime":"00:00:00"}]
#4
#5
1.线程问题使用ThreadLocal的全局对象保存response
2.输出后要调用writer的flush方法
2.输出后要调用writer的flush方法
#6
#7
你前台怎么写的。 你配置的是application/json;
画面要用json 来处理。
画面要用json 来处理。
#8
你前台怎么写的。 你配置的是application/json;
画面要用json 来处理。
$.ajax({
type: "POST",
url:"CallingLog",
dataType:"json",
contentType: "application/json; charset=utf-8",
success: function (Jsondata) {
这是前台,没有错。我感觉 就是 request和response错位的问题
#9
打印错误看看 error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}
#10
打印错误看看 error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}
谢谢~~
这个问题已经解决了~
因为消息根本无法返回到前端。应该返回前端的消息被阻塞了。
我在需要响应的地方设置了sleep,等到终端的参数全部接受完了之后,将消息拿来再进行response。
#11
打印错误看看 error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}
谢谢~~
这个问题已经解决了~
因为消息根本无法返回到前端。应该返回前端的消息被阻塞了。
我在需要响应的地方设置了sleep,等到终端的参数全部接受完了之后,将消息拿来再进行response。
我也遇到此问题,想问下你这边是怎么解决的?