# Problem mit Bilderupload von lokalen Bildern bei eBay



## DayXtry (9. Okt 2006)

Hi,
ich arbeite in letzter Zeit mit der API von eBay. Das Abrufen von Produkten und das Darstellen der Ergebisse ist kein Problem. Auch das Einstellen von einem neuen Produkt ist kein Problem, solange ich nicht versuche mit dem eBay Picture Service (EPS) ein lokales Bild bei eBay hochzuladen.
Dabei tritt immer folgender Fehler auf:

```
Exception in thread "main" java.lang.NoClassDefFoundError: com/ebay/sdk/pictureservice/eps/eBayPictureServiceFactory
        at com.ebay.sdk.call.AddItemCall.<init>(AddItemCall.java:108)
        at consoleadditem.ApplicationAddItem.main(ApplicationAddItem.java:72)
Exception in thread "main" java.lang.NoClassDefFoundError: com/ebay/sdk/pictureservice/eps/eBayPictureServiceFactory
        at com.ebay.sdk.call.AddItemCall.<init>(AddItemCall.java:108)
        at consoleadditem.ApplicationAddItem.main(ApplicationAddItem.java:72)
```

So, die Fehlermeldung ist ja eigentlich eindeutig, er findet die eps.jar von eBay nicht.
Ich arbeite mit NetBeans und habe die eps.jar (so wie viele andere .jar Dateien von der eBay API) einmal in den Library Manager von NetBeans mit eingebunden sowie in den Properties vom Projekt -> Java Sources Classpath. Alle anderen .jar Dateien werden problem los akzeptiert und auch von NetBeans gefunden. 

Soa,...wenn ich in der Eingabeaufforderung echo %CLASSPATH% eingebe, dann gibt er folgendes aus:
C:\Programme\Java\jdk1.5.0_09\lib;C:\eBay\eBay Java SDK v471 Full Release\lib

Wobei sich die eps.jar Datei so wie alle anderen .jar Dateien der eBay API in dem Verzeichnis C:\eBay\eBay Java SDK v471 Full Release\lib befinden. Also müsste das ja auch stimmen.
Aber warum wird die eps.jar Datei dann nicht gefunden? Ich hab sie überall eingebunden wo es möglich ist, hatte sie auch mal direkt im classpath stehen, hat auch nichts gebracht. Ich weiß nicht mehr weiter.

Würde mich rießig freuen, wenn mir jemand weiterhelfen könnte.
Hab das Problem auch schon in das amerikanische Developerforum von eBay gestellt (wobei unter anderem herausgekommen ist, dass es einen Bug in der eBay API gibt. Wurde aber eine alternative Lösung vorgeschlagen welche auch gehen müsste, wenn die eps.jar gefunden wird -.-), aber eBay kann mir da auch nicht weiterhelfen, die schreiben nur dass das kein direktes Problem mit der eBay API ist.

Mit freundlichen Grüßen
DayXtry


----------



## Bert Brenner (9. Okt 2006)

Also, auf jeden Fall müssen im Classpath alle einzelnen Jar Dateien aufgeführt werden.

Siehe auch:
http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/classpath.html


----------



## DayXtry (9. Okt 2006)

ok, hab jetzt das hier gemacht:


```
set CLASSPATH=C:\eBay\eBay Java SDK v471 Full Release\lib\attributes.jar;
C:\eBay\eBay Java SDK v471 Full Release\lib\ebaycalls.jar;
C:\eBay\eBay Java SDK v471 Full Release\lib\ebaysdkcore.jar;
C:\eBay\eBay Java SDK v471 Full Release\lib\helper.jar;
C:\eBay\eBay Java SDK v471 Full Release\lib\eps.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\activation.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\ant.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\axis-ant.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\axis.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\commons-collections.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\commons-dbcp.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\commons-discovery.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\commons-logging-api.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\commons-logging.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\commons-pool.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\jakarta-oro-2.0.7.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\jasper-compiler.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\jasper-runtime.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\jaxrpc.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\jdbc2_0-stdext.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\jndi.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\jta.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\log4j-1.2.8.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\mail.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\naming-common.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\naming-factory.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\naming-resources.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\saaj.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\servlet.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\tools.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\wsdl4j.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\xercesImpl.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\xml-apis.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\xmlsec.jar;
```

geht aber immer noch nicht.

THX FÜR DIE SEHR SCHNELLE ANTWORT!!!

Mit freundlichen Grüßen
DayXtry


----------



## DayXtry (9. Okt 2006)

Ok, was ich gerade bemerkt hab....wenn ich in der Eingabeaufforderung


```
set CLASSPATH=C:\eBay\eBay Java SDK v471 Full Release\lib\attributes.jar;
C:\eBay\eBay Java SDK v471 Full Release\lib\ebaycalls.jar;
C:\eBay\eBay Java SDK v471 Full Release\lib\ebaysdkcore.jar;
C:\eBay\eBay Java SDK v471 Full Release\lib\helper.jar;
C:\eBay\eBay Java SDK v471 Full Release\lib\eps.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\activation.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\ant.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\axis-ant.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\axis.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\commons-collections.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\commons-dbcp.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\commons-discovery.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\commons-logging-api.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\commons-logging.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\commons-pool.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\jakarta-oro-2.0.7.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\jasper-compiler.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\jasper-runtime.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\jaxrpc.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\jdbc2_0-stdext.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\jndi.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\jta.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\log4j-1.2.8.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\mail.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\naming-common.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\naming-factory.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\naming-resources.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\saaj.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\servlet.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\tools.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\wsdl4j.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\xercesImpl.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\xml-apis.jar;
C:\eBay\eBay Java SDK v471 Full Release\externalLib\axis-1_1\xmlsec.jar;
```

aufrufe, und danach echo %CLASSPATH% dann passt alles noch. Schließ ich die Eingabeaufforderung, und starte diese neu, und mach dann echo %CLASSPATH% dann steht da das drin, was man bei Umgebungsvariablen eingetragen hat, und nicht mehr das auf was man den CLASSPATH in der console gesetzt hat. Das Problem ist, dass wenn ich jetzt bei Umgebungsvariablen den Classpath setzen möchte, dann passen da nicht alle .jar Dateien rein. Also hab ich mir gedacht, da die anderen .jar Dateien auch gefunden werden, wenn ich sie nicht im CLASSPATH angebe, lass ich die einfach mal weg und geb mal nur die eps.jar Datei an die nicht gefunden werden kann. Aber ist auch Fehlanzeige, funzt auch nicht.

Mit freundlichen Grüßen
DayXtry



----EDIT----
Wenn ich das Programm per

```
java ApplicationAddItem
```
aufrufe, dann kommt folgende Fehlermeldung:

```
Exception in thread "main" java.lang.NoClassDefFoundError: ApplicationAddItem (wrong name: consoleadditem/ApplicationAddItem)
				at java.lang.ClassLoader.defineClass1(Native Method)
				at java.lang.ClassLoader.defineClass(Unknown Source)
				at java.security.SecureClassLoader.defineClass(Unknown Source)
				at java.net.URLClassLoader.defineClass(Unknown Source)
				at java.net.URLClassLoader.access$100(Unknown Source)
				at java.net.URLClassLoader$1.run(Unknown Source)
				at java.security.AccessController.doPrivileged(Native Method)
				at java.net.URLClassLoader.findClass(Unknown Source)
				at java.lang.ClassLoader.loadClass(Unknown Source)
				at sun.misc.Launch$AppClassLoader.loadClass(Unknown Source)
				at java.lang.ClassLoader.loadClass(Unknown Source)
				at java.lang.ClassLoader.loadClassInternat(Unknown Source)
```


----------



## SamHotte (9. Okt 2006)

Ich würde das "set CLASSPATH blabla" in eine Batchdatei schreiben, dann brauchst du das nicht jedesmal per Hand zu machen.
Ausserdem sind vermutlich die Leerzeichen im Pfad ein Problem. Entweder woandershin installieren oder Anführungszeichen um jeden einzelnen Pfad, der ein Space enthält.


----------



## DayXtry (9. Okt 2006)

nuja,...erst ma vielen Danke für die Antwort,...

Aber wie oben geschrieben, wird bei mir das was ich mit set CLASSPATH=... mach alles wieder überschrieben, sobald ich die Eingabeaufforderung beende und wieder neu starte und echo %CLASSPATH% eingebe, dann wird das ausgegeben was bei den Umgebungsvariablen bei der Variablen CLASSPATH steht. Will ich dann bei den Umgebungsvariablen alle notwendigen .jar Dateien angeben, dann passen da nicht alle rein, weil da irgend ne Begrezung drin ist. Da aber alle .jar Dateien auch ohne den CLASSPATH zu setzen gefunden werden, dachte ich mir geb ich bei den Umgebungsvariablen beim CLASSPATH eben nur mal den Pfad zur eps.jar an (welche ja nicht gefunden wird). Aber es geht trotzdem nicht.

Mit freundlichen Grüßen
DayXtry


----------



## SamHotte (9. Okt 2006)

1. Jede Eingabeaufforderung beginnt mit den Werten, die du bei der Systemumgebung eingetragen hast. Daher sind die "SET ..."-Befehle auch weg, wenn du eine Neue aufmachst.
Abhilfe: Batch-Datei benutzen.

2. Es gibt eine Maximallänge für die Systempfade (weiß aber nicht, wie lang diese ist). 
Abhilfe: das Ebay-SDK in einen anderen Pfad installieren.

3. das System findet die JARs nicht. Bei Kommandozeilen-Tools liegt das mit p=0,99 an Leerzeichen in Pfaden, die diese Tools als Trennung von Parametern interpretieren.
Abhilfe: Pfade ohne Leerzeichen verwenden (siehe 2.) oder Anführungszeichen benutzen.


----------



## DayXtry (9. Okt 2006)

ok danke,....läuft wunderbar ...NetBeans hat mir ne Batch Datei erzeugt. Was mich allerdings etwas stutzig macht, wenn ich die Batch Datei aufruf, dann gehts. Start ich das Programm aber in der Entwicklungsumgebung, dann gehts nicht,...da kommt dann immer noch der Fehler. Aber NetBeans erzeugt ja die .bat Datei, also müsste es doch innerhalb von NetBeans auch gehen, oder?


----------



## SamHotte (9. Okt 2006)

Kenn' mich mit NetBeans nicht so aus, aber vermutlich musst du die JARs in der "Run-Configuration" (so heißt das zumindest bei Eclipse) entsprechend hinzufügen.


----------

