मैंने इस मुद्दे के बारे में कई प्रश्न देखे हैं लेकिन कोई निर्णायक उत्तर नहीं है। मुझे अपने वर्कलाइट एडाप्टर कार्यान्वयन से जावा क्लास को कॉल करने में परेशानी हो रही है। मैंने आईबीएम वर्कलाइट जावा एडाप्टर ट्यूटोरियल से कोड के साथ अपना कोड बदल दिया और यह ठीक उसी तरह विफल रहता है। इसके अलावा मुझे आईबीएम की साइट पर एक प्रतिक्रिया मिली कि जावा 1.7 कंपाइलर इस समस्या का कारण बन सकता है और इसके बजाए जावा 1.6 का उपयोग कर सकता है। मैंने मान्य किया है कि ग्रहण में मेरा कंपाइलर जावा 1.6 है।ईसीएमए टाइपरर वर्कलाइट एडाप्टर से जावा क्लास को कॉल करना
मेरे जावा वर्गों सब कॉम (जैसे com.worklight.customcode) के साथ शुरू करते हैं। मैंने सार्वजनिक स्थैतिक विधियों (उचित वाक्यविन्यास का उपयोग करके) को कॉल करने और ऑब्जेक्ट को तत्काल करने और विधि को कॉल करने की कोशिश की है। जैसा ऊपर बताया गया है, मैंने यह भी सत्यापित किया है कि मैं जावा 1.6 कंपाइलर का उपयोग कर रहा हूं।
एडाप्टर कार्यान्वयन फ़ाइल:
function addTwoIntegers(a,b){
return {
result: com.worklight.customcode.Calculator1.addTwoIntegers(a,b)
};
}
जावा फ़ाइल (असंपादित आईबीएम Worklight नमूना):
यहाँ कुछ कोड नमूने हैं पैकेज com.worklight.customcode; कंसोल में
import java.util.logging.Logger;
public class Calculator1 {
private final static Logger logger = Logger.getLogger(Calculator1.class.getName());
public static int addTwoIntegers(int first, int second){
logger.info("addTwoIntegers invoked");
return first + second;
}
public int subtractTwoIntegers(int first, int second){
logger.info("subtractTwoIntegers invoked");
return first - second;
}
}
त्रुटि:
TypeError: Cannot call property addTwoIntegers in object [JavaPackage com.worklight.customcode.Calculator1]. It is not a function, it is "object". (%2FUsers%2Fhome%2Fdev%2Fapp%2Fappprj%2Fadapters%2Fadapter/adapter-impl.js#26) FWLSE0101E: Caused by: null
संबंधित प्रश्नों से कुछ हैं:
- Ecma Error: TypeError: Cannot call property
- i want to call a java class from the worklight adapter
- https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014867695
धन्यवाद इडान का पुनर्निर्माण करने की आवश्यकता भी हो सकती है। मैंने int से ऑब्जेक्ट में टाइप को बदलने में कोई फर्क नहीं पड़ता। मुझे समान त्रुटि मिली। – user2217751
मुझे दृढ़ता से संदेह है कि यह एक्लिप्स/वर्कलाइट के साथ एक क्लासपाथ मुद्दा है। एक और दिलचस्प विवरण यह है कि मेरे डेवलपर्स में से एक कोड काम कर रहा था (जो अब हमारी परियोजना में अप्रचलित है) ने अपनी मशीन पर ठीक काम किया लेकिन मेरा कभी नहीं किया। मुझे अभी एहसास हुआ कि यह एक समान मुद्दा था। जावास्क्रिप्ट से ठीक से काम करने के लिए मुझे कोई भी जावा क्लास नहीं मिल सकती है। इस मुद्दे के बारे में इंटरनेट को खराब करने में, यह क्लासपाथ (या समान कॉन्फ़िगरेशन समस्या) के समान दिखता है जहां यह एक व्यक्ति की मशीन पर काम करता है लेकिन दूसरे पर नहीं। डब्ल्यूएल में कॉन्फ़िगरेशन की जांच करने के लिए कोई सुझाव? मैंने स्पष्ट रूप से कक्षापथ की जांच की है। – user2217751
यहां एक और प्रश्न का एक लिंक है जो संबंधित (और अनसुलझा) लगता है: http://stackoverflow.com/questions/15826456/ecma-error-typeerror-cannot-call-property?rq=1 – user2217751