我在JBoss 4.2.3中看不到这种行为。如果我试图在addCookie()上调用HttpServletResponse,并且我的cookie值中有重音字符(例如。)我得到了这个异常: java.lang.IllegalArgumentException: cookie值中的控制字符,考虑编码您的值的BASE64
有人知道JBoss 5.1.0中的什么变化会导致这些问题吗?
发布于 2010-06-01 20:12:01
显然,他们修复了一个bug,使cookie名称最终符合RFC2109。
还请参阅API规范
名称必须符合RFC 2109。这意味着它只能包含,只包含ASCII字母数字字符,不能包含逗号、分号或空白,也不能以$字符开头。在创建之后,不能更改cookie的名称。
cedille ç的c不是ASCII字符。
更新:对不起,问题与cookie值有关。这与这个Tomcat bugfix有关(JBoss在引擎盖下使用Tomcat )。通过如下设置cookie版本,这应该是可行的:
cookie.setVersion(1);根据旧的Netscape规范,ç不是cookie值的有效字符,而是符合较新的RFC2109规范。使用Cookie#setVersion(),您可以在它们之间切换。
https://stackoverflow.com/questions/2952606
复制相似问题