2012-02-06 10 views
6

के माध्यम से स्कैला एप्लिकेशन चलाते समय पोर्ट को बाध्य करने से इनकार कर दिया गया है। मैं एसबीटी के साथ अपना स्कैला कोड चलाने की कोशिश कर रहा हूं, लेकिन नीचे त्रुटि प्राप्त करें। यह कमांड लाइन और इंटेलिजे आइडिया के साथ एसबीटी दोनों के साथ होता है।एसबीटी

[error] (run-main) org.jboss.netty.channel.ChannelException: 
    Failed to bind to: /127.0.0.1:80 
    org.jboss.netty.channel.ChannelException: Failed to bind to: /127.0.0.1:80 
    .... 
    .... 
    Caused by: java.net.SocketException: Permission denied 

पोर्ट एक्सेस की अनुमति देने के लिए मैं कॉन्फ़िगर कैसे करूं। यह तब होता है जब मैं अपने स्थानीय मैक और मेरे रिमोट उबंटू सर्वर पर चलाने की कोशिश करता हूं।

"सुडो एसबीटी" के साथ एसबीटी चलाना समस्या को हल करता है, लेकिन यह समाधान नहीं है। मैं अपने स्कैला ऐप को पोर्ट 80 तक पहुंचने की अनुमति देने के लिए अनुमति कहां सेट कर सकता हूं।

+0

क्या ऑपरेटिंग सिस्टम, वितरण (यदि लागू हो) और संस्करण? –

+0

मैक शेर और उबंटू सर्वर 10.04 पर एक ही समस्या है। जेडीके 1.6 और एसबीटी 0.11.2 और स्कैला 2.9.1 – Jack

+0

का उपयोग करके मुझे शेर के बारे में पता नहीं है, लेकिन गूगलिंग ने सूडो के अलावा कोई समाधान नहीं बताया। उबंटू डेबियन के समान समाधानों का उपयोग करेगा, जिसे मैंने नीचे दिए गए मेरे उत्तर में रखा था। [Serverfault प्रश्न] भी देखें (http://serverfault.com/questions/112795/how-can-i-run-a-server-on-linux-on-port-80-as-a-normal-user) । ध्यान दें कि यह एक प्रोग्रामिंग मुद्दा नहीं है, लेकिन एक ऑपरेटिंग सिस्टम मुद्दा है। –

उत्तर

4

इस समस्या का समाधान कुछ भी एसबीटी, स्काला या जावा कर सकते हैं कि पर नहीं, ऑपरेटिंग सिस्टम पर निर्भर करेगा।

उदाहरण के लिए, डेबियन three different solutions का प्रस्ताव है, जो सभी अन्य लिनक्स वितरण पर इस्तेमाल किया जा सकता है - उनमें से दो रूट के रूप में चलाने पर बदलाव होते रहते हैं, और तीसरे पोर्ट पर ध्यान नकली लिए iptables का उपयोग करता है 80

फ्रीबीएसडी पर कोई भी कम बंदरगाह सीमा पूरी तरह से अक्षम कर सकता है, और सोलारिस प्रति-पोर्ट-एंड-यूजर ऐसा कर सकता है, जैसा कि वर्णन किया गया है (दोनों के लिए) here

4

"सुडो एसबीटी" के साथ एसबीटी चलाना समस्या को हल करता है, लेकिन यह समाधान नहीं है। मैं अपने स्कैला ऐप को पोर्ट 80 तक पहुंचने की अनुमति देने के लिए अनुमति कहां सेट कर सकता हूं।

मुझे लगता है कि यह आपका एकमात्र समाधान है। केवल विशेषाधिकार प्राप्त अनुप्रयोग 1024 के तहत बंदरगाहों से जुड़ सकते हैं।

शायद आप पोर्ट 80 (केवल रूट के रूप में प्रॉक्सी) पर http प्रॉक्सी चलाने के साथ अधिक आरामदायक हैं, या कुछ ipfilter नियम है जो आने वाले पोर्ट 80 को पोर्ट 8080 में फिर से रूट करता है ? this answer भी देखें।

2

आप कॉमन्स-डेमन [1] और इसकी जेएसवीसी बाइनरी पर एक नज़र डालना चाहते हैं। यह आपको कुछ कार्यों के बाद जड़ के रूप में शुरू करने और विशेषाधिकार छोड़ने की अनुमति देता है। यहां कार्य बंदरगाह का बंधन हो सकता है।

[1] http://commons.apache.org/daemon/

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

  • कोई संबंधित समस्या नहीं^_^