2012-07-22 12 views
7

Después de descargar una descompresión de Amazon's MWS client library api He intentado ejecutar uno de los scripts para ver si todo está funcionando.Amazon mws api Clase 'MarketplaceWebService_Client' no encontrada error

al intentar ejecutar el archivo GetReportCountSample.php me sale el error

Fatal error: Class 'MarketplaceWebService_Client' not found in C:\xampp\htdocs\sites\amazon marketplace\Samples\GetReportCountSample.php on line 68 

He mirado a través del archivo de configuración de entrada y tengo mis credenciales como:

define('AWS_ACCESS_KEY_ID', '<key id>');     //has been input 
define('AWS_SECRET_ACCESS_KEY', '<secret key id>');  //has been input 

define('APPLICATION_NAME', '<Your Application Name>'); //no idea what this is 
define('APPLICATION_VERSION', '<Your Application Version or Build Number>'); //no idea 

define ('MERCHANT_ID', '<merch id>');     //has been input 

que pueda No encuentro un archivo php llamado MarketplaceWebService_Client, necesito ayuda, gracias.

+0

Tengo este mismo problema. Estoy pensando que tiene algo que ver con 'set_include_path (get_include_path(). PATH_SEPARATOR. '../../.');' Publicaré una respuesta si lo resuelvo. –

+0

@VitaliyIsikov Hola Vit, he abandonado allí archivos zip inútiles y he creado funciones más simples usando xml. gracias de todos modos –

Respuesta

4

No hay ningún archivo php llamado MarketplaceWebService_Client. Es Client.php en su biblioteca descargada. MarketplaceWebService_Client Class está en el archivo client.php solamente. Creo que incluye la ruta de Client.php no se ha especificado correctamente en GetReportCountSample.php. Client.php puede estar en el camino siguiente (Fuera de la carpeta Samples): C: \ xampp \ htdocs \ sites \ Amazon Marketplace \ Client.php

+0

Hola, ¿qué es APPLICATION_VERSION aquí- Número de cuenta del desarrollador? –

1

que darse cuenta de esto es una vieja pregunta, pero tenía un problema similar y pensé que compartiría mis hallazgos.

El problema aquí es que ha alterado la ruta de instalación de su biblioteca.

... not found in C:\xampp\htdocs\sites\amazon marketplace\Samples\GetReportCountSample.php 

Al no incluir el directorio lib que ha generado este error. Si usted lee a través de la .config.php verá

function __autoload($className){ 
    $filePath = str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php'; 
    $includePaths = explode(PATH_SEPARATOR, get_include_path()); 
    foreach($includePaths as $includePath){ 
     if(file_exists($includePath . DIRECTORY_SEPARATOR . $filePath)){ 
      require_once $filePath; 
      return; 
     } 
    } 
} 

Esto significa que es necesario tener el camino correcto una vez que la clase ha sido dividido con el subrayado. Por eso está buscando la ruta "MarketplaceWebService/client.php". Al eliminar el directorio "MarketplaceWebService" no podrá encontrar este archivo para definir la clase.

Para rectificar, simplemente instale su biblioteca en "htdocs \ sites \ amazon marketplace \ MarketplaceWebService \" y todo debería estar bien.

Espero que esto ayude a alguien.

2

Dentro .config.inc.php que tendrá la siguiente:

/************************************************************************ 
    * OPTIONAL ON SOME INSTALLATIONS 
    * 
    * Set include path to root of library, relative to Samples directory. 
    * Only needed when running library from local directory. 
    * If library is installed in PHP include path, this is not needed 
    ***********************************************************************/ 
    set_include_path(get_include_path() . PATH_SEPARATOR . '../../.'); 

Esto define incluir caminos, que se utilizan en este programa para cargar todos los archivos clasificados para las clases. Cada uno está separado por PATH_SEPARATOR. Esta función agrega otra ruta de inclusión, que es 2 directorios sobre el directorio de trabajo actual, y ese no es el directorio correcto. Tienes que apuntar al directorio src.

Para solucionar esto, cambie '../../.' para que apunte al directorio donde está la carpeta src. Mis scripts y el directorio src están en el mismo directorio principal, por lo que mi código se ve así:

set_include_path(get_include_path() . PATH_SEPARATOR . getcwd().'/src/'); 
Cuestiones relacionadas