2013-06-11 7 views
13

मैं जावा के साथ एक webservice बना रहा हूं जो जेएसपी या सर्लेट का उपयोग नहीं करता है, और इसे अपने अपाचे HTTP सर्वर पर टॉमकैट इंस्टॉल और कॉन्फ़िगर किए बिना चलाने के लिए चाहता हूं। क्या यह संभव है (आसानी से), और मैं इसके बारे में कैसे जा सकता हूं?मैं अपाचे 2.2 पर जावा ऐप को टॉमकैट के बिना कैसे चला सकता हूं?

मैं इस पर जानकारी खोज रहा हूं और केवल एक चीज जो मैंने पार की है वह mod_jk टॉमकैट कनेक्टर है जिसे अभी भी टॉमकैट स्थापित करने की आवश्यकता है। क्या मैं कुछ भूल रहा हूँ?

+1

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

+0

या तो ए के लिए क्या अपाचे का उपयोग किया जाता है ए) स्थिर सामग्री (छवियों, ध्वनियां, आदि) प्रदान करना और बी) लोड संतुलन, क्योंकि यह टोमकैट से तेज़ है। लेकिन यह * टॉमकैट के साथ समन्वय * * जावा-जेनरेट की गई सामग्री परोसता है। – SJuan76

+0

हाँ, यदि आप पहिया को फिर से शुरू करना चाहते हैं और टॉमकैट पहले से ही करते हैं तो कर सकते हैं। _ क्या यह संभव है (आसानी से) _ टॉमकैट को स्थापित करने और कॉन्फ़िगर करने से कहीं अधिक आसानी से, नहीं। –

उत्तर

6

सबसे पहले, सर्वलेट वेब विकास के लिए जावा की मूलभूत बातें हैं। तो, वेब सेवा की तरह, आप जो भी वेब विकास कर रहे हैं, आपको टोमकैट के रूप में एक सर्वलेट कंटेनर की आवश्यकता होगी।

तो आपके प्रश्न का उत्तर यह है कि "आप इसे केवल अपाचे HTTP सर्वर पर नहीं चला सकते हैं", क्योंकि यह सर्वलेट कंटेनर नहीं है।

0

नहीं है, बिलाव, घाट, jboss या Glassfish काफी अनिवार्य

3

यह पूरी तरह स्पष्ट है कि आप क्या करना चाहते हैं नहीं है, लेकिन मुझे लगता है कि करने के लिए है कि आप एक स्टैंड-अलोन जावा अनुप्रयोग चलाने के लिए चाहते हैं जा रहा हूँ जो HTTP अनुरोधों को संभाल सकता है और अपाचे के माध्यम से इसे बेनकाब कर सकता है। यदि ऐसा है, तो आप apache को mod_proxy के साथ कॉन्फ़िगर करके कर सकते हैं। This यह एक अच्छा उदाहरण हो सकता है कि यह कैसे किया जा सकता है।

11

बेशक यह संभव है। आप mod_cgi का उपयोग कर ऐसा कर सकते हैं।

एक बहुत ही सरल उदाहरण इस तरह होगा:

public class HelloWorld 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("Hello Java CGI world!"); 
    } 
} 

और फिर एक स्क्रिप्ट फ़ाइल (HelloWorld.shtml भूल नहीं क्या क्या निष्पादित अनुमति) कि जावा वर्ग

#!/bin/bash 
echo "Content-type: text/html" 
echo "" 

/usr/bin/java HelloWorld 

कार्यान्वित में अपाचे conf, बस अपनी स्क्रिप्ट निर्देशिका को परिभाषित करें, इस तरह कुछ:

ScriptAlias /cgi-bin/ /Users/hectorsuarez/Proyectos/test/cgi-bin/ 
<Directory "/Users/hectorsuarez/Proyectos/test/cgi-bin"> 
    SetHandler cgi-script 
    Options ExecCGI 
    Order allow,deny 
    Allow from all 
</Directory> 

यह है कि मैं टी !. यह एक बहुत ही सरल और मामूली उदाहरण है।

यह जटिल हो जाएगा क्योंकि आपको शायद एक टेम्पलेट इंजन की आवश्यकता हो सकती है और आने वाली सीजीआई कॉल का प्रबंधन करने के लिए एक बेहतर तरीका हो सकता है। लेकिन हाँ, यह संभव है।

+2

पर्ल में ऐसा करने से बचने का कारण है कि सर्वलेट (और सर्वलेट कंटेनर) का आविष्कार पहली जगह में किया गया था ("पहले स्थान पर", मेरा मतलब है 1 99 0 का)। यह स्केल नहीं करेगा। – michael

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