gpt4 book ai didi

java - Axis :带参数的 createCall

转载 作者:搜寻专家 更新时间:2023-10-31 20:18:00 26 4
gpt4 key购买 nike

我用 wsdl2java 生成了 java 代码基于 Magento WSDL ( http://host/api?wsdl ),但不能使用参数调用任何过程

环境:

  • JDK 1.8
  • Axis 1.4
  • php 5.6
  • Magento 1.6

问题:

例如,product.info api 方法需要 2 个参数:sessionIdproductId

代码:

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}});

我检查了数据库,产品确实存在。无论使用哪个 ID,我都会收到错误:

AxisFault
faultCode: 101
faultString: Product not exists.

我尝试了另一种 api 方法,比如 customer.info并得到相同的结果。

如何正确传递参数?

我做了什么:

最佳答案

Magento 文档有一个错误:

http://www.magentocommerce.com/api/soap/catalog/catalogProduct/catalog_product.info.html

参数“productId”应替换为“product”。

关于java - Axis :带参数的 createCall,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35839594/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com