2016-03-07 13 views
5

とcreateCall私はMagentoのWSDL(http://host/api?wsdl)に基づいてwsdl2javaでJavaコードを生成しますが、のparams軸:のparams

環境で任意のプロシージャを呼び出すことはできません。

  • JDK 1.8
  • AXIS 1.4
  • php5.6
  • Magento 1.6

問題:sessionIdproductId

コード:たとえば

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メソッドを、試してみて、同じ結果を持っています。

パラメータを正しく渡す方法は?

私がやった:

答えて

3

Magentoのドキュメントが故障している: http://www.magentocommerce.com/api/soap/catalog/catalogProduct/catalog_product.info.html

パラメータ「productId」は、実際には「製品」と呼ばれます。

+0

返信ありがとうございますが、とにかく製品が見つかりません(同じエラー) 別のIDとSKUを試しましたが、動作しません。多くの人がMagento SOAPは非常にバグだと書いています。 –

+1

ええ、私は時代に私の自己を使用しました。もう使用しない理由がある^^ – TheMirrox