5
とcreateCall私はMagentoのWSDL(http://host/api?wsdl)に基づいてwsdl2javaでJavaコードを生成しますが、のparams軸:のparams
環境で任意のプロシージャを呼び出すことはできません。
- JDK 1.8
- AXIS 1.4
- php5.6
- Magento 1.6
問題:sessionId
とproductId
コード:たとえば
、product.info APIメソッドが2つのparams必要な私は、データベースをチェックし
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.
私はcustomer.infoのような別のAPIメソッドを、試してみて、同じ結果を持っています。
パラメータを正しく渡す方法は?
私がやった:
- disable wsdl cache on server side
- clean wsdl cache
- 再起動のWebサービス
返信ありがとうございますが、とにかく製品が見つかりません(同じエラー) 別のIDとSKUを試しましたが、動作しません。多くの人がMagento SOAPは非常にバグだと書いています。 –
ええ、私は時代に私の自己を使用しました。もう使用しない理由がある^^ – TheMirrox