साथ createCall मैं जावा कोड wsdl2java साथ Magento डबल्यूएसडीएल (http://host/api?wsdl) के आधार पर जेनरेट, लेकिन पैरामीटरएक्सिस: पैरामीटर
पर्यावरण के साथ किसी भी प्रक्रिया फोन नहीं कर सकते हैं:
- JDK 1.8
- धुरी 1.4
- php 5.6
- Magento 1.6
समस्या:
उदाहरण के लिए, product.info api विधि की आवश्यकता 2 पैरामीटर: sessionId
और productId
कोड:
MagentoService magentoService = new MagentoServiceLocator();
Mage_Api_Model_Server_HandlerBindingStub service = new Mage_Api_Model_Server_HandlerBindingStub(new URL("http://myhost/api"), magentoService);
String sessionId = service.login("api-user", "AAAAAAAAAAAAAAAA");
Call serviceCall = service.createCall();
serviceCall.setOperationName(new QName("call"));
serviceCall.setTargetEndpointAddress(new URL("http://myhost/api"));
serviceCall.addParameter("sessionId", Constants.XSD_STRING, ParameterMode.IN);
serviceCall.addParameter("resourcePath", Constants.XSD_STRING, ParameterMode.IN);
serviceCall.addParameter("productId", Constants.XSD_STRING, ParameterMode.IN);
serviceCall.setReturnType(Constants.SOAP_MAP);
serviceCall.invoke("call", new Object[] {sessionId, "product.info", new Object[]{2115}});
मैं डेटाबेस की जाँच की, उत्पाद वास्तव में मौजूद है। कोई फर्क नहीं पड़ता जो इस्तेमाल किया आईडी, मैं त्रुटि मिल रही है:
AxisFault
faultCode: 101
faultString: Product not exists.
मैं एक और एपीआई तरीकों की कोशिश, एक customer.info की तरह और एक ही परिणाम है।
पैरामीटर को सही तरीके से कैसे पास किया जाए?
मैं क्या किया:
- disable wsdl cache on server side
- clean wsdl cache
- पुनः आरंभ करने के लिए वेब सेवाओं
आपकी प्रतिक्रिया के लिए धन्यवाद, लेकिन वैसे भी उत्पाद नहीं मिला (उसी त्रुटि) मैंने अलग-अलग आईडी और एसकेयू की कोशिश की, लेकिन यह काम नहीं करता है। बहुत से लोग लिखते हैं कि Magento SOAP बहुत छोटी है। –
हाँ, मैंने इसे दिनों में अपने स्वयं के पीछे इस्तेमाल किया। एक कारण है जिसका मैं अब इसका उपयोग नहीं करता ^^ – TheMirrox