我有一个不寻常的情况。编码的输出包含json,每个字符之间都有空格。
{ " f o r m " : { " s a m p l e F i e l d " : " s a m p l e v a l u e " } }
我们有一个Spring MVC应用程序, 向我们的一个控制器执行POST请求。 POST请求中的字段通过请求参数填充到POJO中。从日志中我们可以看到字母之间没有空格。.我们正在将POJO直接传递给服务类中的Gson共享实例(许多请求和石英后台线程都使用该实例) 。 Gson转换器变量的实例化如下
Gson gsonMaker = new GsonBuilder().setDateFormat("MM dd, yyyy").create();
这是非常随机的(每100个案例中有1个案例)请求指针以进行观察。 我们将JSON输出存储在Oracle 11g数据库中。 从我在其他帖子和Google上的阅读来看,Gson似乎是线程安全的。
请帮助。
答案 0 :(得分:1)
经过大量分析,发现问题出在ojdbc6驱动程序jar中。事实证明,驱动程序的CLOB字段有问题,并且仅在8000个字符时发生。 重现此问题的顺序如下。
我们使用休眠模式的DAL正在获取CLOB数据并将其再次保存到DB中。这次将8000个字符重新写回数据库引发了混乱,可能是由于Gson造成的。
我想解决几个问题。
希望人们发现此线程很有用。