2010-04-16 21 views
27

में विधि बनाने तक पहुँचने मैं है एक वेबबैक :: HTTPStatus :: सर्वर पर लंबाई की आवश्यकता त्रुटि प्राप्त करें। विधि का उपयोग भी नहीं किया जा रहा है! यहाँ स्टैक ट्रेस है (यह पूर्ण उत्पादन सर्वर साइड है - ध्यान दें कि नियंत्रक भी पहुँचा नहीं जा रहा है):WEBrick :: HTTPStatus :: LengthRequired त्रुटि एक बहुत ही सरल नियंत्रक की स्थापना की है जब नियंत्रक

[2010-04-16 00:35:39] ERROR WEBrick::HTTPStatus::LengthRequired 
[2010-04-16 00:35:39] ERROR HTTPRequest#fixup: WEBrick::HTTPStatus::LengthRequired occured. 
[2010-04-16 00:35:39] ERROR NoMethodError: private method `gsub!' called for #<Class:0x2362160> 
    /usr/local/Cellar/ruby_187/1.8.7-p249/lib/ruby/1.8/webrick/htmlutils.rb:17:in `escape' 
    /usr/local/Cellar/ruby_187/1.8.7-p249/lib/ruby/1.8/webrick/httpresponse.rb:232:in `set_error' 
    /usr/local/Cellar/ruby_187/1.8.7-p249/lib/ruby/1.8/webrick/httpserver.rb:70:in `run' 
    /usr/local/Cellar/ruby_187/1.8.7-p249/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' 
    /usr/local/Cellar/ruby_187/1.8.7-p249/lib/ruby/1.8/webrick/server.rb:162:in `start' 
    /usr/local/Cellar/ruby_187/1.8.7-p249/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' 
    /usr/local/Cellar/ruby_187/1.8.7-p249/lib/ruby/1.8/webrick/server.rb:95:in `start' 
    /usr/local/Cellar/ruby_187/1.8.7-p249/lib/ruby/1.8/webrick/server.rb:92:in `each' 
    /usr/local/Cellar/ruby_187/1.8.7-p249/lib/ruby/1.8/webrick/server.rb:92:in `start' 
    /usr/local/Cellar/ruby_187/1.8.7-p249/lib/ruby/1.8/webrick/server.rb:23:in `start' 
    /usr/local/Cellar/ruby_187/1.8.7-p249/lib/ruby/1.8/webrick/server.rb:82:in `start' 
    /usr/local/Cellar/ruby_187/1.8.7-p249/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/handler/webrick.rb:14:in `run' 
    /usr/local/Cellar/ruby_187/1.8.7-p249/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/commands/server.rb:111 
    /usr/local/Cellar/ruby_187/1.8.7-p249/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
    /usr/local/Cellar/ruby_187/1.8.7-p249/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' 
    script/server:3 

मैं रेल 2.3.5 और गहरे लाल रंग का 1.8.7 चल रहा हूँ। किसी भी तरह की सहायता का स्वागत किया जाएगा। अगर आपको अधिक जानकारी चाहिए तो मुझे बताएं।

उत्तर

1

अगर यह अभी भी Webrick के लिए प्रासंगिक है या यदि वह तय कर दिया गया है, लेकिन वहाँ संकर जाति या अन्य के साथ इसे चलाने त्रुटि आप Read line 2 on this TODO page on RubyForge

हो रही है आप gem install mongrel और करने की कोशिश की है के लिए एक पता है कि मुद्दा यह है मैं नहीं जानता रूबी सर्वर?

+0

यह सच है - हालांकि, यह संदेश 2008 में लिखा गया था और यह भी कहता है कि यह त्रुटि "कम प्राथमिकता" है। मुझे आश्चर्य है अगर मैंने कुछ गलत कॉन्फ़िगर कर दिया है ... जब मैं संकर जाति के साथ चलाने मैं निम्न त्रुटि: ActionController :: InvalidAuthenticityToken (ActionController :: InvalidAuthenticityToken): गाया बचाव/_trace (178.6ms) रेंडर बचाया/_request_and_response (1.5ms) रेंडरिंग बचाव/लेआउट (unprocessable_entity) हम्मम्मम्म ... –

+0

हाँ आप सही क्रिस हैं, लेकिन यह एकमात्र व्यावहारिक स्पष्टीकरण है जो मैं एक त्रुटि के लिए हवा सकता हूं। हालांकि, Mongrel त्रुटि कम गूढ़ है, मैंने हाल ही में एक ही मुद्दा देखा है, जब मैं सत्रों के साथ काम कर रहा था। आपका सत्र स्टोर क्या है? और क्या आपके पास सत्र कुंजी और गुप्त सेटअप है? – konung

+0

मैंग्रेल पर स्विच करने के लिए मेरे लिए चाल थी :) –

64

मुझे यह मिला जब मैंने खाली शरीर के साथ एक पोस्ट किया था। मैं कर्ल का उपयोग कर रहा था।

कुछ की तरह:

curl -X POST http://url/ 

मैं -d जोड़ा '' और यह मुद्दे को मंजूरी दे दी। पोस्ट पर HTTParty.post

+0

क्या ऐसा कुछ भी करने के लिए है जिसे '-d' 'जोड़ने के बिना कुछ भी नहीं भेजा जा रहा है, जब मैं कुछ भी नहीं भेज रहा हूं? – Pred

+1

यदि आप किसी भिन्न वेब सर्वर पर स्विच करते हैं, उदाहरण के लिए पतला, यह एक खाली शरीर भेजने के बिना काम करता है। – littleforest

8

उपयोग :body बजाय :query के शरीर => '' विशेषता और अनुरोधों डाल:

curl -X POST http://url/ -d '' 

आपके मामले में, आप शायद एक करने के लिए कुछ सामग्री जोड़ने की जरूरत है।

0

मुझे भी एक ही समस्या थी, अभी मैंने इसे हल कर लिया है। मेरे साथ अनुरोध हेडर वैल्यू में न्यूलाइन चार की समस्या थी। जैसे ही वेबब्रिक सर्वर अनुरोध फ़ॉर्म ब्राउज़र या अन्य क्लाइंट प्राप्त करता है, यह आपके आवेदन के लिए अनुरोध भेजता है और तुरंत ERROR WEBrick::HTTPStatus::LengthRequired के साथ कोड 411 देता है।

तो हेडर मान डालने से पहले आप न्यूलाइन चार को हटा सकते हैं।

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