/ / जेट्टी रिस्पांस विद नो चारसेट - जावा, जेट्टी, प्रतिक्रिया, चरित्र-एन्कोडिंग

कोई चार्टसेट के साथ जेटी प्रतिक्रिया - जावा, जेटी, प्रतिक्रिया, चरित्र-एन्कोडिंग

मैं जेटी का उपयोग कर रहा हूं कि हमारे पास एक webservice का परीक्षण करने के लिए है और मैं इसे सामग्री-प्रकार हेडर के तहत कोई charset के साथ जवाब देने के लिए प्राप्त करने की कोशिश कर रहा हूं।

क्या किसी को भी यह करना आता है?

मैंने "रिस्पांस को इंटरसेप्ट करने और कैरेक्टेनकोडिंग को अशक्त या" सेट करने की कोशिश की, लेकिन यह अपवाद देता है।

मैं जेट्टी 6.1.6 का उपयोग कर रहा हूं।

उत्तर:

उत्तर № 1 के लिए 1

मैंने इसे अब स्वयं करने की कोशिश की, लेकिन मुझे मानना ​​होगा,घाट एक बहुत पुराना है (4.2।, लेकिन सब कुछ जिस तरह से मुझे इसकी आवश्यकता है) करता है। मैंने इसे टॉमकैट (4.1.29, पुराने भी) से तुलना की। मैंने निम्नलिखित कोड के साथ सामग्री प्रकार की जाँच की:

URL tomcatUrl = new URL("http://localhost:18080/ppi/jobperform/headertest")//tomcat;
URLConnection tconnect = tomcatUrl.openConnection();
System.out.println("tomcat: " + tconnect.getContentType());


URL jettyUrl = new URL("http://localhost:13818/ppi/jobperform/headertest")//jetty;
URLConnection jconnect = jettyUrl.openConnection();
System.out.println("jetty: " + jconnect.getContentType());

और परिणाम इस प्रकार था:

सर्वलेट कोड:

    response.setContentType("");
response.getWriter().write("Return");

=>
टॉमकैट:; चारसेट = आईएसओ-8859-1
घाट:

सर्वलेट कोड:

     response.setContentType("text/plain");
response.getWriter().write("Return");

=>
tomcat: पाठ / सादा; charset = ISO-8859-1
घाट: पाठ / मैदान

सर्वलेट कोड:

response.setContentType("text/plain;charset=utf-8");
response.getWriter().write("Return");

=>
tomcat: text / plain; charset = utf-8
घाट: पाठ / सादा; चारसेट = utf-plain

तो ऐसा लगता है कि पुराने जेट्टी जैसा आप चाहते हैं वैसा ही करते हैं, जबकि टॉमकैट वह करता है जो आपको नए जेट्टी से मिला है।


जवाब के लिए 3 № 2

मुझे लगता है कि यह किस सर्वलेट का मामला नहीं हैकंटेनर आप उपयोग करते हैं, लेकिन आप अपने सर्वलेट के अंदर प्रतिक्रिया के साथ क्या करते हैं। यदि आप ServletResponse के सेटकंटेंट टाइप (2.3) या setCharacterEncoding (2.4, 2.5) को पैरामीटर के साथ कॉल करके अपने चरित्र एन्कोडिंग को सेट करते हैं null या "" यह काम करना चाहिए (अपने आप से प्रयास न करें)। लेकिन ऊपर दिए गए तरीकों को कॉल करना सुनिश्चित करें से पहले गेटवेटर को कॉल करना, अन्यथा एन्कोडिंग सेट करना कोई प्रभाव नहीं पड़ेगा!


जवाब के लिए 0 № 3

चारसेट बहुत उपयोगी जानकारी है। एक अच्छे उत्पाद (जेट्टी) को गलत काम करने के लिए मजबूर करने के बजाय मैं सेवा के उपभोक्ता को सही काम (पहचान और सम्मान करना) सिखाने की कोशिश करूंगा।