Exception in thread "main" java.lang.NoClassDefFoundError

meime 2009-10-20 07:26:49
在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;

}


}
...全文
1874 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
大轨小诸葛 2009-12-08
  • 打赏
  • 举报
回复
你是在做ebay第三方开发吗?交个朋友吧。我现在也在做,可以互相讨论啊。
还有就是我发觉,真正的高手都不会在这里提供帮助。所以,大多数遇到问题时,CSDN往往让我很失望。这里高手如云,但是真正的高手都不愿意站出来,我是菜鸟,在CSDN里也混了两年多了,也早从大学里毕业了,看看这里还是没有什么变化,所以我伤悲,有问题大家讨论,我只要自己能知道的,我一定会尽力的提供帮助的。希望能给大家都能互相帮助,共同提高。
大轨小诸葛 2009-12-08
  • 打赏
  • 举报
回复
楼主,我之前的判断是正确的。
是你的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了。
我是小邹,希望能帮你解决问题。
大轨小诸葛 2009-12-07
  • 打赏
  • 举报
回复
楼主,建议你仔细和ebay的sample对照一下,楼上的几位说的只是一般的情况,出现Exception in thread "main" java.lang.NoClassDefFoundError
这种错误,不一定就是classpath的问题,不过classpath设置不正确会出现这种情况,检查CLASSPATH花不了多长时间,而且我想楼主既然都做ebay的开发,classpath这个问题应该会避免的,所以楼上的各位大虾的意见不敢恭维。建议你去ebay development forums(ebay开发者论坛)去寻找答案。
网址:http://dev-forums.ebay.com/
纯英文的,请静下心来观看!
我之前的建议可以考虑一下!
ADT465T 2009-12-07
  • 打赏
  • 举报
回复
fghre4yu54777
大轨小诸葛 2009-12-07
  • 打赏
  • 举报
回复
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.Jdk14Logger

This cues the commons logger to use java.util logging (which is what we're using).

Hope that helps,

小邹
chen_hello88 2009-10-21
  • 打赏
  • 举报
回复
我昨晚也碰到同样的问题啦!
hui94781674 2009-10-21
  • 打赏
  • 举报
回复
环境变量没设好。。。呼呼。。
steel1985 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 pangpanglovezz 的回复:]
环境变量问题
JAVA_HOME
PATH
CLASSPATH
配置好,网上有很多的例子
[/Quote]

对头
coolbamboo2008 2009-10-21
  • 打赏
  • 举报
回复
应该是环境变量没配.在eclipse里面,可以右键工程--build path--configure build path--source选项卡--add folder...把你的程序文件夹加进去就能跑通了
唐伯虎爱石榴 2009-10-21
  • 打赏
  • 举报
回复
环境变量问题 找不到可执行类
pangpanglovezz 2009-10-20
  • 打赏
  • 举报
回复
环境变量问题
JAVA_HOME
PATH
CLASSPATH
配置好,网上有很多的例子
bigbro001 2009-10-20
  • 打赏
  • 举报
回复
没有设置环境变量Classpath:.;C:\Program Files\Java\jdk1.6.0_04\lib\dt.jar;C:\Program Files\Java\jdk1.6.0_04\lib\tools.jar;
lxxzhy 2009-10-20
  • 打赏
  • 举报
回复
看都不用看,肯定是环境问题.

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧