2015-01-07 36 views
0

只有在某些情況下,我已經這個錯誤調用和的XPage奇怪使用錯誤的XPages

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

可能是什麼原因?如何解決這個問題?

UPDATE

這裏面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是一個服務器JavaScript函數(請參閱here),但實際上並未使用。 在myMethod裏面MyClass我不設置cookie。可能是CGIVariables函數中的問題?

更新3 我做了一些關於交通網絡(與IE開發工具),請求的截圖。 這裏請求:

enter image description here

這裏關於請求的詳細信息:

enter image description here

這裏大約發送的cookie的細節(你可以看到,有與保留的名稱沒有餅乾,字符串Urbanistica e Verde位於的值的其中一個cookie - >見紅線) enter image description here

UPDATE 4

問題似乎涉及到the cookie value,不the cookie name。刪除','cookie值中的字符可解決問題

+0

「某個名字」的價值是什麼?一些cookie名稱可能被保留。 –

+0

error-log-0.xml出現此錯誤:「java.lang.IllegalArgumentException:Cookie名稱」Urbanistica e Verde&count「是保留的令牌」。我不知道爲什麼「&count」放入cookie名稱中...... –

+0

問題不在於「&count」,問題在於名稱中的空格。看到下面的答案 – Greg

回答

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. 

也有不能使用其它字符。

+0

如何控制cookie名稱?基本上,我使用的是調用一些Java代碼(如servlet)的xsp,所以我不明白cookie是如何生成的。 –

+0

然後,您的第一步是查看Cookie的創建位置。您應該查看JavaScript代碼,Java代碼和xpage本身。 – Greg

+0

*更新2中的一些其他細節* –