2016-03-07 44 views
5

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: sessionIdproductId

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:

Trả lời

3

Các tài liệu Magento là bị lỗi: http://www.magentocommerce.com/api/soap/catalog/catalogProduct/catalog_product.info.html

Tham số "productId" trong thực tế được gọi là "sản phẩm".

+0

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. –

+1

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