2012-07-22 27 views
7

Sau khi tải xuống một giải nén của Amazon MWS client library api Tôi đã cố chạy một trong các tập lệnh để xem mọi thứ có hoạt động hay không.Amazon mws api Lớp 'MarketplaceWebService_Client' không tìm thấy lỗi

khi cố gắng chạy file GetReportCountSample.php tôi nhận được lỗi

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

Tôi đã nhìn qua tập tin cấu hình và tôi có đầu vào thông tin của tôi như:

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 

tôi có thể không tìm thấy một tập tin php gọi là MarketplaceWebService_Client, tôi cần giúp đỡ, cảm ơn.

+0

Tôi gặp vấn đề tương tự. Tôi nghĩ rằng nó có cái gì để làm với 'set_include_path (get_include_path(). PATH_SEPARATOR. '../../.');' Tôi sẽ đăng một câu trả lời nếu tôi tìm ra điều này. –

+0

@VitaliyIsikov Hey Vit, tôi đã bỏ rơi ở đó các tệp zip vô dụng và đã tạo các hàm đơn giản hơn bằng cách sử dụng xml. thanks anyway –

Trả lời

4

Không có tệp php được gọi là MarketplaceWebService_Client. Client.php trong thư viện đã tải xuống của bạn. Lớp MarketplaceWebService_Client chỉ có trong tệp client.php. Tôi nghĩ rằng bao gồm đường dẫn của Client.php không được chỉ định chính xác trong GetReportCountSample.php. Client.php có thể nằm trong đường dẫn sau (Ngoài Mẫu thư mục): C: \ xampp \ htdocs \ \ trang web thị trường amazon \ Client.php

+0

Xin chào, APPLICATION_VERSION ở đây là gì- Số tài khoản nhà phát triển? –

1

Tôi nhận ra đây là một câu hỏi cũ nhưng tôi đã một vấn đề tương tự và nghĩ rằng tôi muốn chia sẻ những phát hiện của tôi.

Sự cố ở đây đã xảy ra vì bạn đã thay đổi đường dẫn cài đặt thư viện của mình.

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

Bằng cách không bao gồm thư mục Lib đã tạo lỗi này. Nếu bạn đọc qua .config.php bạn sẽ thấy

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

Điều này có nghĩa là bạn cần phải có đường dẫn chính xác khi lớp đã được chia với dấu gạch dưới. Bằng cách đó, nó đang tìm đường dẫn "MarketplaceWebService/client.php". Bằng cách loại bỏ thư mục "MarketplaceWebService", nó sẽ không tìm thấy tệp này để xác định lớp.

Để khắc phục, chỉ cần cài đặt thư viện của bạn vào "htdocs \ sites \ amazon marketplace \ MarketplaceWebService \" và tất cả sẽ tốt.

Hy vọng điều này sẽ giúp ai đó.

2

Bên .config.inc.php bạn sẽ có những điều sau:

/************************************************************************ 
    * 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 . '../../.'); 

này định nghĩa bao gồm đường dẫn, được sử dụng trong chương trình này để tải tất cả các tập tin các loại cho các lớp học. Mỗi người được phân cách bởi PATH_SEPARATOR. Hàm này thêm một đường dẫn khác, đó là 2 thư mục phía trên thư mục làm việc hiện tại, và đó không phải là thư mục thích hợp. Bạn phải trỏ đến thư mục src.

Để khắc phục điều này, hãy thay đổi '../../.' để trỏ đến thư mục chứa thư mục src. Các tập lệnh của tôi và thư mục src nằm trong cùng thư mục mẹ, vì vậy mã của tôi trông giống như sau:

set_include_path(get_include_path() . PATH_SEPARATOR . getcwd().'/src/'); 
Các vấn đề liên quan