在myeclipse中运行如下程序:出现错误
Exception in thread "main" java.lang.NoClassDefFoundError
at com.ebay.sdk.ApiCall.executeByApiName(ApiCall.java:588)
at com.ebay.sdk.ApiCall.execute(ApiCall.java:348)
at com.ebay.sdk.call.GetSearchResultsCall.getSearchResults(GetSearchResultsCall.java:623)
at layer_ebay.ebay.getInfo(ebay.java:109)
at layer_ebay.ebay.main(ebay.java:39)问题出在哪???请各位高手指教
/*
 * Bay.java
 *
 * Created on November 25, 2005, 2:46 PM
 *
 * To change this template, choose Tools | Options and locate the template under
 * the Source Creation and Management node. Right-click the template and choose
 * Open. You can then make changes to the template in the Source Editor.
 * The type javax.xml.bind.annotation.XmlAccessType cannot be resolved. It is indirectly referenced from 
 required .class files
 */
package layer_ebay;
import Util.ebay_info;
import  com.ebay.sdk.call.GetSearchResultsCall;
import java.util.*;
import java.net.URI;import com.ebay.sdk.*;
import com.ebay.sdk.call.GetItemCall;
import com.ebay.soap.eBLBaseComponents.*;
import com.ebay.sdk.util.eBayUtil;
import com.ebay.sdk.helper.ConsoleUtil;
import com.ebay.soap.eBLBaseComponents.ItemTypeFilterCodeType;
public class ebay {
// public static void main(String args[]){
// ebay e = new ebay();
//// java.util.ArrayList books = ebayBooks.getInfo(ISBN);
// }  //Main method

public static void main(String args[]){
// ebaypriceinfo ebay = new ebaypriceinfo();
String ISBN = "978-7-111-25611-3";
// double price =ebay.getBookPrice(ISBN);
ebay e = new ebay();
java.util.ArrayList array = e.getInfo(ISBN);
System.out.println("ok");
}
  public static java.util.ArrayList getInfo(String ISBN) {    String input;
    java.util.ArrayList bookList = new java.util.ArrayList();
    try {
      
      System.out.print("\n");
      System.out.print("+++++++++++++++++++++++++++++++++++++++\n");
      System.out.print("+ Welcome to eBay SDK for Java    !   +\n");
      System.out.print("+ Sample - ConsoleViewItem            +\n");
      System.out.print("+++++++++++++++++++++++++++++++++++++++\n");
      System.out.print("\n");
      System.out.println("===== [1] Collect Account Information ====");
      
      
      /**Defines API context under which the API call will be made.
      To successfully make eBay API call, 
      you need both API account and a normal eBay account. 
      ApiContext also controls additional things like logging, CallRetry etc.
     **/
      ApiContext apiContext = new ApiContext();
      /**
       * Defines credentials to be used for making eBay API call. Set either eBay token (seteBayToken()) 
       * or ApiAccount plus eBayAccount since they are exclusive to each other. 
       */
      ApiCredential cred = apiContext.getApiCredential();
      ApiAccount ac = cred.getApiAccount();
      eBayAccount ec = cred.geteBayAccount();      //String token = "AgAAAA**AQAAAA**aAAAAA**Cf2GQw**nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6wJnY+lC5WGoAydj6x9nY+seQ**t2AAAA**AAMAAA**LvhBZdLbjhD1ThMi6hH3TqiacGtqVcrfAMUA+HpJMrsP1i7PTIB2Mh/+dgJ55tB8L/0REolGiQeFt9Welcss3pbB8HsQHCJIST9LSuQaPeZEMoU/x9Y1DT+hfN8p7i3vZJ9r9WTyUorUs3lBfLrowaEnAnBE40vnnJaMkppx408d1oXyZ5U2XtCiQRwWd8+QFvPiqGXQwCyag9TJLefn7IoQdcBvXwLqY7p4wKVJVW+NxewLvAe7o8JKDWBNvr2bBOb+9uqR+XCbX4x+EryqcabTpuW0PVohOIMJccWCIKtrR1XRWj9ma+/lZ++ufblQ/TTFP10jpA319nw3gZ42Bm8fxGU1Op3ZFNgqsNH+wrqVA1SNTXQHH6ceqSolgK6fDuEH4YJu6v+Lvi16v9CS3tezYgXH926IUWQvcN09fHR4GlhR6VAPxwfRyNimpe1DWbjQfYTwqt0QOjw94iKy7y+4V50uzOTqRfHd2zSdgXGaH52P3eQ1gSaZkTQnHwcr12v2uLFSJKsMOtoUiLlenmPNz0wujo6YCfqrqn9Xq5Od0ohSaFtiCgWI41rWiGZ2BR+4qe11rJIku+Q4VNrQm5/qJk59nn0cwoczstYkbkL2sCx+NN8rXN8yK9EcW4iV6RdEs56UneecUvNRqE+FAPKhB4Q/Gkwqr2TDYSMQFBdhSeEQuL/U0x73ZPcc/MydtXVNHarBrOPP4yvL/zcW9kjQZaxL3NqbzQAhqwjI42vXRDz5XiT5ijUvC8g86D";
      //String eBaySOAPURL = "https://api.sandbox.ebay.com/wsapi";
      String token ="AgAAAA**AQAAAA**aAAAAA**IRTdSg**nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6wFk4CoD5aDoQqdj6x9nY+seQ**vDUBAA**AAMAAA**lcSM2XOkj5eE3gATOIK8JKyIAGTmiX9DgXPr9JK61RoYaJd3LClPjiSNYZsf6DZ2sS8sQN+HzKzOp22AmJ7zLVtPEeoFhOn+jRtqe3xRGcWYBRqdGpuNVQnO2DAPVezZ9krezY0cWOsnfmZzDrIkQIM9txY9epPrkKwEk64G40uYP3V3DPxvsAiDuz89VgyojgC64j8MC54AduUsDSnxWhmaU5q2P7UPeI6qCEK9nYk0BS4uvUxwyml1SQlDRhcn2xTx9WjrnqYHDmk+RkvXRNoLuxHIrjJ6g9bm+GAHAY0LAkLsqQ4qHJBsLtmN+4kKO1suPDiFFDH7v1N4TI7Tcl4LZrgEvxLaImx6bzrIIdbNHvV+70ch47m+EaFJ0RW66wzWS47LTt1oC4EHGnFzFh4IQKKRJtf9pQom2Bx4YlY8ckWdtaihi63SdbMpbr6jagAkCO3R/RTuCT5d9zD9rN7nk8nlFtYl4e8GjZ+jxesWKNTlO8w9p+sbmQMOKDcqzVhMjzM/X3AIdLpB2uB1ZhJx6m9cRXRYCoJL84X/eRHAONeV/9uEJ958bNRu3Dumj+loe2FtLH78cqHFnJPH86e8B1k5DKlhHe5ay5+uU39lIuFz27wHR7AgxkTfv34R8RttAgc/YM/U7bQ67xUIPAgh0d5cOrJvm91+Sg2/lv9qgnsdQ9QyUiPvIOxmUcCgmgTDGW74AifyijtwN3zYEk6R6gYvry+SuV0x2mxeErBLrcm53RLVcdzKbZB/8v5Y";
//      String token = "AgAAAA**AQAAAA**aAAAAA**DmOHQw**nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6wGloqgC5GCqQydj6x9nY+seQ**yQ8AAA**AAMAAA**lgEzCWVf3IAUD8j6/GQsUQz47xBUdD63nakhvTUDjzsY2YV9QqNNlbI2M7AP3wFHNSH+UJgpqgj/0x+8MdGzPuWZJ1EoYv1ljwtZLb4Lrgfla2b0lcx/tmSL9gSZrXHoRPqcDhGzlsYhEjSB9kEXevYo5vgDdR0IecH2/0fDa2UQB1z92QZF7HoC4sMxBKxK2L46rnx3vKffqeeJQVclPud32reezByAYxRCxXDOQjVtikWPg5GMTTksnq2TENsjYXr2fzR3xtxYVquTtI4XRYX5AnD27VrFI1eWGFw67AZMPfZfPfnD/HdQHXhd9bjTCkffVEdYIqY72oGWe5sXkEhQ4r4x/EpLzw8nqpB0YC0b10Y8/md+pAC8TgPrqmAmWgM3yc2ta1gkd93Qig8sHqtmBxPoSIYfWd9268EYW+JTaRKP7+mqKwa/0TI+66XMxwRcZJ1QaNo/Z+XUiddHi0oBsLPb6oCf4jmTkkSO55YwJm6ZfeVKJylm8jnhRdhwl88z7g2nvpSyk3za4zg0ysxnG/BN5DSOIzySjErGpUCXt2bIc+O6YTr43GDRNlZylAaCAlbuD670M/2T4DBs00C13YhCrskTjkCNc95IKMjPUJf9+XO8nBemLY1I2I3mKIq//pzRq6aA+7/xfui+TQv0My5hXKehPVm+H/uebu3f6mv96hUahpNdd0GJd3tgYgEceu8jolKGd7ge8C/9acvh/KkvKmPxh/1s2MhL0Z/P52vudOGf5HWEBxdFTG";
      String eBaySOAPURL = "https://api.ebay.com/wsapi";
      
      String itemIDStr ;      apiContext.setApiServerUrl(eBaySOAPURL);
      cred.seteBayToken(token);
      apiContext.setRouting("New");
      GetSearchResultsCall api = new GetSearchResultsCall(apiContext);      //api.setQuery("dell");
      //Contains an ISBN(概述国际标准书号) value, EAN value, UPC(条形码) value, ticket keywords, or eBay catalog product ID, plus other meta-data.
      ExternalProductIDType externalProductIDType = new ExternalProductIDType();
      externalProductIDType.setType(ExternalProductCodeType.ISBN);
      externalProductIDType.setValue(ISBN);
      api.setExternalProductID(externalProductIDType);
      // Search flags
      ArrayList al = new ArrayList();      SearchFlagsCodeType flags[] = new SearchFlagsCodeType[al.size()];
      for(int i = 0; i < al.size(); i++ )
        flags[i] = (SearchFlagsCodeType)al.get(i);      if( flags.length > 0 )
        api.setSearchFlags(flags);      api.setItemTypeFilter(com.ebay.soap.eBLBaseComponents.ItemTypeFilterCodeType.ALL_ITEMS);      PaginationType pt = new PaginationType();
      
      System.out.println(pt);
      
      pt.setEntriesPerPage(new Integer(10));
      pt.setPageNumber(new Integer(1));
      api.setPagination(pt);      // Call eBay.
      SearchResultItemType[] items = api.getSearchResults();
      
      if (items==null) return bookList;
      for(int i = 0; i < items.length ; i++ )
      {
        ItemType it = items[i].getItem();
        itemIDStr = it.getItemID();    //.getValue();        GetItemCall gc = new GetItemCall(apiContext);
        DetailLevelCodeType[] detailLevels = new DetailLevelCodeType[] {
          DetailLevelCodeType.RETURN_ALL,
          DetailLevelCodeType.ITEM_RETURN_ATTRIBUTES,
          DetailLevelCodeType.ITEM_RETURN_DESCRIPTION
            };
            
          gc.setDetailLevel(detailLevels);
//          ItemIDType itemID = new ItemIDType(itemIDStr);
//          ItemType item = gc.getItem(itemID);
          // [2] Create item object.
          ItemType item = gc.getItem(itemIDStr);
          
          
          
          SellingStatusType sst = item.getSellingStatus();
          ListingDetailsType listingDetails = item.getListingDetails();
 //         org.apache.axis.types.URI url1 =listingDetails.getViewItemURL();
          
          
          
          String url1 =listingDetails.getViewItemURL();
          Calendar cal = listingDetails.getEndTime();
          Date dat = cal.getTime();
          
          ebay_info book = new ebay_info();
          book.url = url1.toString();
          book.BidCount=sst.getBidCount();
          book.CurrentPrice =sst.getCurrentPrice().getValue();
          book.ItemType = item.getListingType().toString();
          book.PrimaryCategory = item.getPrimaryCategory().getCategoryID();
          book.Quantity = item.getQuantity();
          book.QuantitySold = sst.getQuantitySold();
          book.StartPrice =  item.getStartPrice().getValue();
          book.Title =item.getTitle();
          book.date =dat; 
          bookList.add(book);
      }
      
    }
    catch(Exception e) {
      e.printStackTrace();
    }
   return bookList;}  
}

解决方案 »

  1.   

    没有设置环境变量Classpath:.;C:\Program Files\Java\jdk1.6.0_04\lib\dt.jar;C:\Program Files\Java\jdk1.6.0_04\lib\tools.jar;
      

  2.   

    环境变量问题
    JAVA_HOME
    PATH
    CLASSPATH
    配置好,网上有很多的例子
      

  3.   

    应该是环境变量没配.在eclipse里面,可以右键工程--build path--configure build path--source选项卡--add folder...把你的程序文件夹加进去就能跑通了
      

  4.   

    Hi,:As you've probably spotted, there's a nasty (and easily fixable) gotcha in the static initialiser in SdkAPIInterfaceServiceLocator, where the whole initialisation is in a try block, but the catch block only handles Exception; if a runtime Error is thrown, it isn't caught, the initialiser fails, and the JVM whinges NoClassDefFound - with no helpful stack trace.I seem to recall having similar problems when we first implemented the new WS SDK: I've added a commons-logging.properties file which contains simply:org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14LoggerThis cues the commons logger to use java.util logging (which is what we're using).Hope that helps,小邹
      

  5.   

    楼主,建议你仔细和ebay的sample对照一下,楼上的几位说的只是一般的情况,出现Exception in thread "main" java.lang.NoClassDefFoundError 
    这种错误,不一定就是classpath的问题,不过classpath设置不正确会出现这种情况,检查CLASSPATH花不了多长时间,而且我想楼主既然都做ebay的开发,classpath这个问题应该会避免的,所以楼上的各位大虾的意见不敢恭维。建议你去ebay development forums(ebay开发者论坛)去寻找答案。
    网址:http://dev-forums.ebay.com/
    纯英文的,请静下心来观看!
    我之前的建议可以考虑一下!
      

  6.   

    楼主,我之前的判断是正确的。
    是你的jar包没有引用全,但是你现在去找的SDK里其他包你肯定又找不到,那是因为ebay的SDK里也有很多是引用外部的jar包,他自己的jar包放在Lib的文件夹里,而引进的外部包放在externalLib这个文件夹里,引进里面的的全部包。但是即使这样还会出现Exception in thread "main" java.lang.NoClassDefFoundError 这样的错误。
    下面给出具体的解决办法:
    右击你的工程--->properties------>java build path------>Projects------>点击add按钮,把ebay的 SDK以工程(projects)的形式引进来。然后错误消失,OK!问题解决!
    这时,就算你删除(remove)之前所有的后引进来的jar包,也不会出错,因为ebay已经全部实现编译过了,只要以工程的形式引进java sdk就一切OK了。
    我是小邹,希望能帮你解决问题。
      

  7.   

    你是在做ebay第三方开发吗?交个朋友吧。我现在也在做,可以互相讨论啊。
    还有就是我发觉,真正的高手都不会在这里提供帮助。所以,大多数遇到问题时,CSDN往往让我很失望。这里高手如云,但是真正的高手都不愿意站出来,我是菜鸟,在CSDN里也混了两年多了,也早从大学里毕业了,看看这里还是没有什么变化,所以我伤悲,有问题大家讨论,我只要自己能知道的,我一定会尽力的提供帮助的。希望能给大家都能互相帮助,共同提高。