tôi tạo ra mã java với wsdl2java dựa trên Magento WSDL (http://host/api?wsdl), nhưng không thể gọi bất kỳ thủ tục với paramsAxis: createCall với params
Môi trường:
- JDK 1.8
- AXIS 1,4
- php 5.6
- Magento 1.6
Vấn đề:
Ví dụ, product.info phương pháp api cần 2 params: sessionId
và productId
mã:
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 kiểm tra cơ sở dữ liệu, sản phẩm thực sự tồn tại. không có vấn đề gì id được sử dụng, tôi nhận được lỗi:
AxisFault
faultCode: 101
faultString: Product not exists.
tôi thử một phương pháp api khác, như một customer.info và có cùng kết quả.
cách chuyển thông số chính xác?
gì tôi đã làm:
- disable wsdl cache on server side
- clean wsdl cache
- dịch vụ khởi động lại web
Cảm ơn phản hồi của bạn, nhưng dù sao sản phẩm không tìm thấy (cùng lỗi) tôi đã thử ID và SKU khác nhau nhưng không hoạt động. Nhiều người viết rằng Magento SOAP rất lỗi. –
Vâng, tôi đã tự sử dụng nó trong những ngày. Có một lý do tôi không sử dụng nó nữa ^^ – TheMirrox