2016-03-07 17 views
5

साथ 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 की तरह और एक ही परिणाम है।

पैरामीटर को सही तरीके से कैसे पास किया जाए?

मैं क्या किया:

उत्तर

3

Magento प्रलेखन दोषपूर्ण है: http://www.magentocommerce.com/api/soap/catalog/catalogProduct/catalog_product.info.html

पैरामीटर "productId" वास्तविकता में "उत्पाद" कहा जाता है।

+0

आपकी प्रतिक्रिया के लिए धन्यवाद, लेकिन वैसे भी उत्पाद नहीं मिला (उसी त्रुटि) मैंने अलग-अलग आईडी और एसकेयू की कोशिश की, लेकिन यह काम नहीं करता है। बहुत से लोग लिखते हैं कि Magento SOAP बहुत छोटी है। –

+1

हाँ, मैंने इसे दिनों में अपने स्वयं के पीछे इस्तेमाल किया। एक कारण है जिसका मैं अब इसका उपयोग नहीं करता ^^ – TheMirrox

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