使用XPages的奇怪错误

时间:2015-01-07 09:52:10

标签: xpages lotus-domino

只有在某些情况下,我才会出现此错误调用和XPage

java.lang.illegalArgumentException: Cookie name "some name" is a reserved token

可能是什么原因?如何解决这个问题?

更新

这是error-log-0.xml

中的完整错误行
<values>java.lang.IllegalArgumentException: Cookie name &quot;Urbanistica e    
Verde&amp;count&quot; is a reserved token&#xA;&#x9;at java.lang.Throwable.&lt;init&gt;
(Throwable.java:67)&#xA;&#x9;at javax.servlet.http.Cookie.&lt;init&gt;
(Cookie.java:128)&#xA;&#x9;at com.ibm.domino.xsp.bridge.http.servlet.XspCmdHttpServletRequest.parseCookieString (XspCmdHttpServletRequest.java:338)&#xA;&#x9;at com.ibm.domino.xsp.bridge.http.servlet.XspCmdHttpServletRequest.getCookies(XspCmdHttpServletRequest.java:269)&#xA;&#x9;at com.ibm.domino.xsp.bridge.http.servlet.XspCmdHttpServletRequest.readSessionId(XspCmdHttpServletRequest.java:171)&#xA;&#x9;at com.ibm.domino.xsp.bridge.http.servlet.XspCmdHttpServletRequest.&lt;init&gt;(XspCmdHttpServletRequest.java:142)&#xA;&#x9;at com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:256)&#xA;</values>

更新2

XSP在afterPageLoad事件中有这个SSJS

var cgi = new CGIVariables();
var exCon = facesContext.getExternalContext();
var response = exCon.getResponse();
response.setHeader("cache-control", "no-cache");
response.setDateHeader("Expires", -1);

com.xxx.MyClass.myMethod(
    facesContext.getExternalContext().getRequest(), 
    response
);

facesContext.responseComplete();

CGIVariables是Server Javascript函数(请参阅here),但实际上并未使用。 在myMethod MyClass内,我没有设置Cookie。可能是CGIVariables函数中的问题?

更新3 我已经制作了一些有关交通网络(使用IE开发工具)的截图。 这里的要求是:

enter image description here

此处有关请求的详细信息:

enter image description here

这里有关于发送cookie的详细信息(如您所见,没有带保留名称的cookie,字符串Urbanistica e Verde位于其中一个cookie的中 - &gt;看红线) enter image description here

更新4

问题似乎与the cookie value有关,而与the cookie name无关。删除cookie值中的','字符可以解决问题

1 个答案:

答案 0 :(得分:1)

基本上,您使用的是非法名称。

来自this website

The name must conform to RFC 2965. That means it can contain only ASCII alphanumeric characters and
cannot contain commas, semicolons, or **white space** or begin with a $ character.

还有其他字符无法使用。