2013-07-20 6 views
10

के लिए आउटगोइंग कुकी सेट करने का प्रयास किया था, मेरे पास एक पृष्ठ 1.jsf है, इस पृष्ठ में मेरे पास एक कमांड बटन है जो ऑब्जेक्ट में ऑब्जेक्ट डालता है, और रीडायरेक्ट करता है page2.jsf। इस पृष्ठ में मैं ऑब्जेक्ट को ELFlash द्वारा पुनर्प्राप्त करता हूं। सब कुछ ठीक काम करता है। लेकिन जब उपयोगकर्ता page2.jsf में रहता है, हर ajax अनुरोध के लिए, बिल्ला यह चेतावनी संदेश दिखाता है:जेएसएफ से चेतावनी प्राप्त करना: प्रतिक्रिया तब तक की गई थी जब हमने फ़्लैश

20/07/2013 09:43:37 com.sun.faces.context.flash.ELFlash setCookie 
WARNING: JSF1095: The response was already committed by the time we tried to set the outgoing cookie for the flash. Any values stored to the flash will not be available on the next request. 

यह वास्तव में क्या मतलब है?

+2

इसका वास्तव में मतलब है कि फ्लैश अभी भी मोजाररा में टूट गया है। आप किस मोजाररा संस्करण का उपयोग कर रहे हैं? – BalusC

+0

क्या यह [इस] से संबंधित हो सकता है (http://stackoverflow.com/questions/17668986/exception-about-flash-with-jsf-2-2-1)? –

+0

[जेएसएफ -28 9 6] हो सकता है (https://java.net/jira/browse/JAVASERVERFACES-2896)। मैं अभी भी एक जटिल पृष्ठ में पोस्ट-रीडायरेक्ट-गेट और ओमनिफेस 'एडफ्लैश()' का उपयोग करके, मोजाररा-2.2.5 के साथ इसे देख रहा हूं। – mabi

उत्तर

-1

फ़्लैश जैसा कि यह सुझाव देना चाहिए कि नाम जेएसएफ के जीवन चक्र के बीच एक अस्थायी कंटेनर अवधारणा के रूप में है। बिंदु निम्न है: फ्लैश में संग्रहीत ऑब्जेक्ट को उपयोगकर्ता के सामने आने वाले अगले दृश्य में प्रोमो किया जाएगा (याद रखें कि जेएसएफ एमवीसी का पालन करता है), इस प्रकार 'इस्तेमाल' होने के बाद यह गायब हो जाएगा, अर्थात् हटा दिया जाएगा।

मुझे लगता है कि आपको ऐसा त्रुटि क्यों मिलती है, और यह सीधे मोजाररा से संबंधित नहीं है।

+0

आप कंक्रीट सवाल का जवाब नहीं दे रहे हैं। आदर्श रूप में, उन चेतावनी संदेशों को बिल्कुल नहीं दिखाया जाना चाहिए। आपके उत्तर में कुछ भी इसका समाधान नहीं देता है। – BalusC

+0

'फ्लैश में संग्रहीत कोई भी मान अगले अनुरोध पर उपलब्ध नहीं होगा।'? : ओ – LMG

+0

यह सिर्फ चेतावनी संदेश है, और यह मुझे अपेक्षित व्यवहार बताता है, जिसका मतलब है कि चेतावनी में दिखाए जाने का कोई कारण नहीं था, और मेरा सवाल था, यह क्यों हो रहा है। –

3

मुझे लगता है कि समस्या http chunking से संबंधित हो सकती है। समाधान बफर आकार बढ़ाने के लिए समाधान है। उसके बाद कुकीज़ सही ढंग से सेट की जाएंगी और फ्लैश स्कोप भी काम करना चाहिए। इस कोड को

उपयोग:

public class FlashScopeFixerFilter implements Filter { 
@Override 
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 
    // Below line: response.getWriter() must be invoked to buffer size setting work. Just DO NOT touch this! 
    response.getWriter(); 
    HttpServletResponseWrapper wrapper = new HttpServletResponseWrapper((HttpServletResponse) response); 
    wrapper.setBufferSize(10000000); 
    chain.doFilter(request, wrapper); 
} 

@Override 
public void init(FilterConfig arg0) throws ServletException {} 
@Override 
public void destroy() {} 
} 

और web.xml में: के रूप में @Rafal कश्मीर जवाब में बताया गया एक फिल्टर का उपयोग करने का

<filter> 
    <filter-name>FlashScopeFixerFilter</filter-name> 
    <filter-class>dk.sd.medarbejderdata.common.FlashScopeFixerFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>FlashScopeFixerFilter</filter-name> 
    <url-pattern>*.xhtml</url-pattern> 
</filter-mapping> 
+0

जो वर्तमान में केवल एक चीज है जो हमारे लिए काम करती है। mojarra 2.2.14 में हमारे लॉग अभी भी इस कष्टप्रद चेतावनी से भरे हुए थे – Steve

3

इसके बजाय, आप भी द्वारा प्रतिक्रिया बफर आकार बढ़ा सकते हैं अपने web.xml

<!-- increase buffer size to avoid JSF1095 errors --> 
<context-param> 
    <param-name>javax.faces.FACELETS_BUFFER_SIZE</param-name> 
    <param-value>131072</param-value> 
</context-param> 

आकार में संदर्भ पैरामीटर सेट करना बाइट्स में दिया गया है और आपके सबसे बड़े पेज से बड़ा होना चाहिए। आप सीधे क्लिक करके और View Page Info चुनकर फ़ायरफ़ॉक्स में अपने पृष्ठों का आकार आसानी से देख सकते हैं।

संबंधित मुद्दे