2009-04-22 16 views
5

मुझे डबलक्लिक डार्ट एपीआई से कनेक्ट करने और विज्ञापन क्रिएटिव डाउनलोड करने के लिए एक एप्लिकेशन लिखने का काम सौंपा गया है।क्या मैं सी # के साथ जावा एपीआई से कनेक्ट कर सकता हूं?

एपीआई वर्तमान में केवल जावा है, लेकिन वे (अंत में) एक एसओएपी संस्करण जारी कर रहे हैं।

सी # डेवलपर के रूप में, मैं सी # में एप्लिकेशन लिखना चाहता हूं और जावा एपीआई तक पहुंचना चाहता हूं, जब तक एसओएपी एपीआई उपलब्ध न हो।

क्या मैं यह कर सकता हूं? यदि हां, तो कैसे?

यदि नहीं, तो मैं जावा सीखूंगा, एप्लिकेशन लिखूंगा, फिर एसओएपी एपीआई उपलब्ध होने पर इसे फिर से करें, लेकिन यह कार्रवाई का पसंदीदा कोर्स नहीं है।

सहायता के लिए धन्यवाद।

उत्तर

1

क्या यह एक वेब-सेवा API है, या एक जेएआर फ़ाइल जो आपको प्रदान की गई है? बाद के मामले में, जे # एक विकल्प हो सकता है, और इस धागे में कुछ अन्य ब्रिजिंग विकल्प हैं: http://www.velocityreviews.com/forums/t140810-java-c-interop.html

0

एक तरफ मैं आपकी वेब सेवा को एक यथार्थ तरीके से लिखने की सिफारिश कर सकता हूं, बल्कि (या साथ में) तो SOAP ? यह लाभ भविष्य में आपकी सेवा का उपभोग करने वाली किसी भी भाषा के बीच अंतःक्रियाशीलता होगी, बल्कि केवल वे लोग जो डब्लूएसडीएल के आधार पर कोड उत्पन्न कर सकते हैं। सिर्फ एक विचार।

1

हां, आप यह कर सकते हैं और हमें थोड़ी देर पहले कुछ ऐसा करना पड़ा।

डबलक्लिक एपीआई जावा आधारित है और यह अनिवार्य रूप से डेटाबेस से पूछताछ करने के तरीकों का संग्रह है।

आपको इन तरीकों को एक्सिस 2 जैसे कुछ का उपयोग करके वेब सेवा के अंदर लपेटना है और फिर वेब सेवा को टॉमकैट सर्वर पर तैनात करना है (यह सब खुला स्रोत है)। यह वेब सेवा का खुलासा करता है और फिर आप अपनी पसंद की किसी भी चीज़ से वेब सेवा को कॉल कर सकते हैं।

तो अपने मामले में, आप विजुअल स्टूडियो के अंदर एक वेब सेवा संदर्भ जोड़ते हैं और फिर आपकी सी # कक्षा वेब सेवा को कॉल करेगी जो डबलक्लिक जावा विधि का आह्वान करती है।

वास्तविक जावा कोड न्यूनतम (aprox। 10 पंक्तियां) है क्योंकि यह सब एक कॉल है और फिर आउटपुट स्वरूपित करता है। कोड लिखने के लिए तैनाती में अधिक समय लगता है!

हमारे जावा विकास पर्यावरण ग्रहण है और मैंने इसके बारे में here ब्लॉग किया है।

0

मैं कहूंगा कि जे # परत का उपयोग करना एक अच्छा विकल्प हो सकता है। मैंने थोड़ी देर पहले इसका इस्तेमाल किया है, लेकिन यह मेरे लिए चाल है।

3

IKVM.NET आपका समाधान हो सकता है। यह एक जावा वर्चुअल मशीन है जो जावा बाइटकोड को .NET IL में अनुवाद करती है।

आप क्या कर सकते हैं जावा एपीआई (जार या स्रोत फ़ाइलों के रूप में प्रदान) को एक .NET असेंबली में ikvmc.exe का उपयोग करके संकलित करना है और फिर इस असेंबली को अपने सी # प्रोजेक्ट से संदर्भित करना है।

आईकेवीएम के पास जावा उपयोगकर्ता इंटरफेस (एडब्ल्यूटी) के लिए सीमित समर्थन है, लेकिन चूंकि यह एक एपीआई है, यह प्रासंगिक नहीं होना चाहिए।

मैंने अपने आप से यह कोशिश नहीं की है, इसलिए मैं गारंटी नहीं दे सकता कि यह वास्तव में काम करता है।

http://weblog.ikvm.net/story.aspx/faq

+0

मैं IKVMC का उपयोग कर जार फ़ाइलों को बदल और जैसे ही गूगल इंग्लैंड पहुंचने की अनुमति दी एपीआई का उपयोग शुरू करने के लिए कर रहा था। अब मुझे यह जानने के लिए प्रलेखन के माध्यम से बाहर निकलना है कि मुझे क्या करना है। – Matthew

0

हम वास्तव में ऐसा करने का एक अलग तरीके के साथ चला गया देखें।

  1. सी # वेब सेवा अब जावा क्लास को javaw.exe (प्रक्रिया का उपयोग करके) के साथ कॉल करती है और एक आईडी (GUID) में गुजरती है।
  2. GUID जावा क्लास द्वारा लिखी गई XML फ़ाइल के लिए फ़ाइल नाम के रूप में उपयोग किया जाता है।
  3. यदि प्रक्रिया (जावा) त्रुटि के बिना समाप्त होती है, तो वेब सेवा तब (GUID) .xml फ़ाइल खोलती है और डेटा पुनर्प्राप्त करती है।

हालांकि यह इष्टतम तरीका नहीं है, यह अल्पावधि में इस प्रक्रिया के लिए काम करता है, और लंबे समय में, जब एक साबुन समाधान उपलब्ध हो जाता है, वेब सेवा को आसानी से अद्यतन किया जाता है।

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

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