2011-09-13 13 views
11

से पोस्ट करते समय मैं एक प्रबंधित बीन के भीतर से एक बाहरी सेवा में पोस्ट करने के लिए HttpURLConnection खोल रहा हूं।चेतावनी "[पैरामीटर] पैरामीटर्स: अमान्य खंड अनदेखा" जब एक प्रबंधित बीन

चेतावनी [पैरामीटर] पैरामीटर:: जब मैं HttpUrlConnection.getInputStream() को फोन करना मैं निम्न चेतावनी हो रही है अवैध हिस्सा

सब कुछ प्रक्रियाओं ठीक नजरअंदाज कर दिया है, लेकिन मैं का एक समूह रखना चाहते हैं हमारे लॉग से बाहर चेतावनियां। इस चेतावनी का कारण क्या है और मैं इसे होने से कैसे रोक सकता हूं?

यहाँ प्रासंगिक कोड है:

@ManagedBean 
@SessionScoped 
public class MyController { 

    private void doStuff() { 
    ... 
    URL url = new URL(externalServiceUrl); 
    HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
    conn.setDoOutput(true); 
    conn.setDoInput(true); 

    wr = new OutputStreamWriter(conn.getOutputStream()); 
    wr.write(postData); 
    wr.flush(); 

    InputStream is = conn.getInputStream(); // Warning logged after this line 
    ... 
    } 

} 
+0

तो .. यदि आप उस पंक्ति को अपमानित करते हैं, तो चेतावनी अब और प्रकट नहीं होती है? यह अजीब बात है, क्योंकि जब भी किसी नाम के बिना अनुरोध पैरामीटर सबमिट किया गया है, तो मैं इसे टोमकैट/जेबॉस सर्वर में से एक के रूप में पहचानता हूं, जिसके बदले में 'URLConnection # getInputStream() 'के साथ पूरी तरह से कुछ भी नहीं है। – BalusC

+0

यह पता चला है कि मैं अपनी पोस्टडाटा स्ट्रिंग को शुरुआत में "&" के साथ बना रहा था। चूंकि बाहरी सेवा वास्तव में एक ही जब्स उदाहरण में चल रही एक और युद्ध थी, यह बाहरी सेवा के लिए पोस्ट था जो चेतावनी उत्पन्न कर रहा था। टिप्पणी के लिए धन्यवाद जो मुझे मेरी गलती का नेतृत्व किया! –

+0

ओह, आप एक सेवा से HTTP- कनेक्ट कर रहे हैं जो एक ही कंटेनर पर चलता है और जो एक ही लॉगफाइल पर लॉग करता है? कितना अजीब ... :) वैसे भी, मैं टिप्पणी को उत्तर के रूप में दोबारा पोस्ट करूंगा ताकि आप इसे स्वीकार कर सकें। – BalusC

उत्तर

21

यह चेतावनी हो सकता है जब भी क्वेरी स्ट्रिंग इस तरह के एक नाम के बिना एक अनुरोध पैरामीटर के रूप में, गलत हिस्सा शामिल हैं:

name1=value1&=value2&name3=value3 

या अपने विशेष रूप से मामला, शुरुआत में & (अनिवार्य रूप से, पहला खंड अमान्य है):

&name1=value1&name2=value2&name3=value3 

टिप्पणियों के मुताबिक, आप एक सेवा से HTTP- कनेक्टिंग प्रतीत होते हैं जो एक ही कंटेनर पर चलता है और उसी लॉगफाइल पर लॉग करता है। यह चेतावनी वास्तव में सेवा कंटेनर से आ रही है, न कि HttpURLConnection से। मेरी jboss-log4j.xml कॉन्फ़िग फ़ाइल को

<category name="org.apache.tomcat.util.http.Parameters"> 
    <priority value="ERROR"/> 

:

+0

मैंने क्वेरी स्ट्रिंग में अतिरिक्त त्रुटि के साथ यह त्रुटि देखी है (इस मामले में name1 से पहले: http://www.stackoverflow.com/blah?&name1=value1&name2=value2 – ptha

0

मैं जोड़कर मेरी लॉग से इस चेतावनी हटा दिया। इसे पहले ट्रेसी स्तर पर सेट किया गया था।

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