# need org.apache.commons.httpclient.*



## Moinsn (3. Aug 2011)

Morgen ...

Beim Versuch die Amazon MWS zu nutzen hänge ich leider an der mir fehlenden httpclient jar.





Nachdem ich die version 4.1.1 von der Seite Link in das Projekt gespielt habe, hat Eclipse meine Eigendlichen Importanweisungen geändert. Jedoch wurden die benötigten Klassen leider immer noch nicht gefunden.




Da in dem API Sample Projekt von Amazon "Copyright 2009" steht hab ich das auch mal mit einer älteren httpclient von Link versucht, was jedoch auch nicht geklappt hat. 

Kann mir bitte jmd. sagen wie ich die Amazon MWS API in Eclipse zum laufen bekomme?
DANKE

EDIT:   Hab die Imports jetzt doch hin bekommen. Die jars von der Seite Link haben funktioniert.
Leider fehlen ihm immer noch einige Methoden.


----------



## nillehammer (3. Aug 2011)

Wie Du schon selbst herausgefunden hast, ist das Source Code Beispiel von Amazon etwas veraltet, weil es eine alte Version von http-Client voraussetzt. Wie Du auch schon selbst herausgefunden hast, gibt es die neueste Version hier:Apache HttpComponents - HttpComponents Downloads

Ich denke, es macht wenig Sinn, veralteten Source Code mit einer veralteten http-Client Version zum Laufen zu brinngen. Du willst das ja sicherlich als Ausgangpunkt für weitere Entwicklung nehmen. Darum schlage ich vor, die neueste Version einzubinden. Wei den Stellen, wo es nicht kompiliert, musst Du gucken, wie die Funktionalität mit der neuen Version abzubilden ist. Dabei helfen Dir die javadocs: HttpClient 4.1.1 API

Falls Du dabei irgendwo hängen bleibst, melde Dich nochmal. Und poste Deinen Sourcecode bitte nochmal mit dem [ JAVA ] [ / JAVA ] Tag. Dann kann man ihn sich kopieren, wenn es nötig ist.


----------



## Moinsn (3. Aug 2011)

Meinst du die neue Version des mws oder die neue Version des httpclient.
Mws ist nähmlich schon die "amazon-mws-v20110101 vom 2011-03-01. 
Leider läuft die trotzdem nicht mit der neuen httpclient...   es sei denn ich hab da irgendwas falsch gemacht. 

Es scheint ja jetzt bis auf ein paar Methoden wie z.B die isRequestSent() zu funktionieren.
Hast du evtl. ein funktionierendes Beispielprojekt von Amazon das du mir schicken kannst?
Vllt. kannst du mir auch heut Abend ne kleine in das Thema Amazon MWS geben. Ich fühl mich ehrlich gesagt grade damit überfordert und fummel da jetzt schon seit 3 Tagen dran rum.  :autsch:


----------



## Gelöschtes Mitglied 5909 (3. Aug 2011)

wenn amazon den alten client benutzt musst du natürlich auch den alten client benutzen..


----------



## nillehammer (3. Aug 2011)

> wenn amazon den alten client benutzt musst du natürlich auch den alten client benutzen..


Wenn ich nicht ganz falsch liege, benutzt amazon-mws selbst überhaupt keinen httpclient. Amazon mws ist erstmal ein Webservice, den man bei Amazon aufrufen kann, wie man halt Webservices allgemein aufruft (über http). Wenn man den Webservice aufruft, bekommt man in der Regel XML als Response. Das müsste man jetzt erstmal selbst parsen und in Java Objekte mappen. Damit das nicht jeder machen muss, stellt amazon eine API zur verfügung, die auf Java Objekte mappt.

Um zu zeigen, wie man den Webservice (über http mit Hilfe des httpClient) anspricht und dann die API benutzt, um aus dem Response Java Objekte zu machen, hat Amazon Beispielcode veröffentlicht, den Moinsen gerade bearbeitet. Der ist aber schon zwei Jahre alt und bezieht sich auf eine veraltete Version von httpClient. Wir wollen jetzt gemeinsam versuchen, den veralteten Code zu nehmen und so umzuschreiben, dass er für das Absenden der http-Requests die neueste Version des httpClient verwendet.

Wie gesagt, wenn ich nicht ganz falsch liege. So habe ich das ganze zumindest nach dem ÜBerfliegen der Amazon Doku (https://developer.amazonservices.de/gp/mws/docs.html) verstanden.


----------



## nillehammer (3. Aug 2011)

> Meinst du die neue Version des mws oder die neue Version des httpclient.


Ich meine von beiden die neueste Version.


----------



## Moinsn (3. Aug 2011)

Absolut richtig ^^

Ich denke die neuste (einzige) zu haben ....
gezogen von hier...


----------



## nillehammer (3. Aug 2011)

Gut, und so gehts jetzt weiter:
- Du machst das, was Du schonmal gemacht hast, nämlich das neue httpClient jar in Dein Projekt einbinden
- In Eclipse machst Du "Organize Imports" es gehen schon mal ein paar Kompilierfehler weg. Einige werden bleiben.
- Die Kompilierfehler gehst Du jetzt einzeln an. Das wird jetzt der mühsame Part, weil Du herausfinden musst, was im zugehörigen Code gemacht wird. z.B. in Deinem zweiten Screenshot der große Block bei "if(config.getUserAgent...) Da wird der User-Agent-Header zusammengebaut. Das ist ein http-Heder. Nun musst Du herausfinden, wo dieser Wert gespeichertwerden kann. Da helfen die weiter unten schon verlinkten javadocs und die Doku weiter (Tipp, das hier ist die richtige Stelle: Chapter1.Fundamentals)


----------



## Moinsn (4. Aug 2011)

DANKE für dat Feedback.
Nu läuft alles. Mal schauen was ich damit so alles anfangen kann.
Am Ende soll eine Verbindung zwischen einen Amazon Shop und einem alten WarenWirtschaftsSystem (OMS) stehen um den Shop zentral zu verwalten. Ich glaube diese Aufgabe wird noch einige Fragen aufwerfen ^^
Auf jeden n dickes DANKE an euch.
Mfg


----------

