【错误】--- An invalid character [32] was present in the Cookie value

 

1.分析错误,这个错误是由于后台

response.addCookie(cookie);

时报的错;是由于转化后的json字符中存在特殊字符,32为ascii码,此时你可以去看tomcat启动日志可能会出现如下警告

[http-nio-8080-exec-5] org.apache.tomcat.util.http.parser.Cookie.logInvalidHeader A cookie header was received [XX] that contained an invalid cookie. That cookie will be ignored.Note: further occurrences of this error will be logged at DEBUG level.

那么现在解决问题是,首先需要将对象转化为json,可以使用

ObjectMapper om = new ObjectMapper();

例如:

 public class TestJson {
 
     @Test
     public void testAdd() throws Exception {
         TestTb testTb = new TestTb();
         testTb.setName("derry");
         ObjectMapper om = new ObjectMapper();
         om.setSerializationInclusion(Include.NON_NULL);
         //将对象转换成json字符串
         Writer wr = new StringWriter();
         om.writeValue(wr, testTb);
         System.out.println(wr.toString());
         //转回对象
         TestTb r = om.readValue(wr.toString(), TestTb.class);
         System.out.println(r.toString());7     
    }
     
}

2.如果还继续报错,可能是由于cookie的版本较低,可以选择升级pom依赖,建议如下

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>

3.如果还继续报错,Tomcat启动的那个错误,可以修改tomcat的context.xml文件,在最后</context>前加如下

<CookieProcessor className ="org.apache.tomcat.util.http.LegacyCookieProcessor"/>

4.具体加的原因可以参考:http://www.mamicode.com/info-detail-2018600.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值