2011-12-02 16 views
5

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

मेरा पहला प्रयास एक PHP स्क्रिप्ट लिखना था जो जार चलाने के लिए एक पास्स्ट्रू फ़ंक्शन चलाता था। यानी

passthru("java -jar myjarfile param1 param2 param3") 

यह काम किया लेकिन काफी धीमी गति से साबित हुई क्योंकि जार फ़ाइल का शुभारंभ किया और मार डाला जा सकता था आदि

मेरा अगला प्रयास Tomcat7 पर एक सर्वलेट बना सकते हैं और usin द्वारा पीएचपी के साथ इंटरफेस करने था curl() कमांड। यानी

curl(http://myserver/mywebapp/myservlet?p1=param1&p2=param2&p3=param3); 

इस उत्कृष्ट प्रदर्शन किया था, लेकिन सर्वलेट बहुत अस्थिर था और (मैं के बारे में 1 अनुरोध के साथ सर्वर लोड हो रहा था हर 10 सेकंड)

मैं स्टैक ओवरफ़्लो पूछ करने के लिए आने के बारे में 5 मिनट के बाद दुर्घटनाग्रस्त हो गया: क्या मैं इसे ठीक से कर रहा हूं? क्या कोई बेहतर तरीका है? मैं अपने जावा प्रोग्राम को जेवीएम में कैसे चला सकता हूं और PHP का उपयोग करके इसके साथ बातचीत कर सकता हूं?

धन्यवाद

+0

यदि मैं आप थे तो मैं आपके द्वारा वर्णित दूसरी विधि का उपयोग करता हूं, लेकिन सर्वलेट की स्थिरता में सुधार करता हूं। क्या आपको कोई विचार है कि यह क्यों दुर्घटनाग्रस्त हो रहा है? साथ ही, क्या यह एक पूर्ण उड़ा हुआ JVM क्रैश है, या यह सर्वलेट में अपवाद है? – Tom

+0

यह एक सर्वलेट अपवाद था। मैंने जेटी पर स्विच करके समस्या हल की, जो स्थिर है – Tucker

उत्तर

3

वहाँ से निपटने चीजों के जावा विधि और चीजों से निपटने में पीएचपी विधि के बीच अंतर का एक दुनिया है।

PHP प्रत्येक अनुरोध के लिए शुरुआत से अंत तक प्रत्येक स्क्रिप्ट चलाता है, जो एक बहुत ही अनिवार्य प्रोग्रामिंग तकनीक के बराबर होता है। दूसरी ओर, जावा आमतौर पर मॉड्यूल द्वारा सामान को संभालती है जो एक से अधिक अनुरोधों के लिए स्मृति में रहती है। दोनों को एकीकृत करने के लिए, आपको "फ़ंक्शन कॉल" से अधिक विचार करने की आवश्यकता है, आपको यह विचार करने की आवश्यकता है कि उन दो वातावरणों को साफ तरीके से कैसे जोड़ा जा सकता है।

जावा प्रति PHP अनुरोध लॉन्च करने से जावा को PHP की तरह व्यवहार करने के लिए कहा जा रहा है। दूसरे शब्दों में, आप इसे PHP की तरह काम करके जावा का उपयोग करने के सबसे अच्छे कारणों को त्यागने जा रहे हैं। इसके बजाए, एक टोमकैट (या कुछ समान) उदाहरण स्थापित करने और एक से दूसरे के अनुरोध को पार करने पर विचार करें। दूसरे शब्दों में, PHP ने जावा वातावरण के लिए वेब अनुरोध किया है, जो पूरी तरह से बिल्डअप और जावा दुभाषिया के टियरडाउन के बिना चीजों को संभालता है (जो कि PHP कैसे चीजों को संभालता है)।

1

मुझे लगता है कि चूंकि आपने एक जार का उपयोग करने का प्रयास किया है, तो आपके पास एक ही मशीन पर PHP और जावा हो सकता है। आप इस दस्तावेज़ को Java integration in PHP पर बहुत रोमांचक पाते हैं। ध्यान दें कि मैंने इसका कभी भी उपयोग नहीं किया है, मुझे केवल पता है कि यह अस्तित्व में है। परिचय पढ़ना सुनिश्चित करें।

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