I erzeugt Java-Code mit wsdl2java basierend auf Magento WSDL (http://host/api?wsdl), aberAchse: createCall mit params
Umwelt jedes Verfahren mit params nicht anrufen:
- JDK 1.8
- AXIS 1.4
- php 5.6
- Magento 1.6
Problem:
Zum Beispiel product.info api Verfahren erforderlich 2 params: sessionId
und productId
Code:
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}});
i Datenbank geprüft, existiert Produkt wirklich. i unabhängig davon, welche ID verwendet wird, immer Fehler:
AxisFault
faultCode: 101
faultString: Product not exists.
ich versuche, einen anderen api Methoden, wie ein customer.info und haben das gleiche Ergebnis.
Wie Parameter richtig übergeben werden?
Was ich tat:
- disable wsdl cache on server side
- clean wsdl cache
- Neustart Webdiensten
Danke für Ihre Antwort, aber auf jeden Fall Produkt nicht gefunden (gleicher Fehler) Ich habe verschiedene IDs und SKU versucht, aber es funktioniert nicht. Viele Leute schreiben, dass Magento SOAP sehr fehlerhaft ist. –
Ja, ich habe es in den letzten Tagen selbst benutzt. Es gibt einen Grund, warum ich es nicht mehr benutze ^^ – TheMirrox