# brauche hilfe bei java/webservice geschichte



## oetzi (15. Jan 2008)

hallo zusammen,
muss mich für mein abschlussprojekt in webservices einarbeiten.

hatte vor mir nen kleinen client zu schreiben, der den amazon webservice anspricht.

soweit so gut.
guckt mal bitte auf folgende seite:
http://developer.amazonwebservices.com/connect/entry.jspa?externalID=880&ref=featured
unter dem punkt Quick start stehen ja die  4 Punkte

1 Extract the amazon-a2s-2007-10-29-java-library.zip file into a working directory.
2 Add all sources under "src" directory to your compilation path.
3 Add all jars files under "third-party/*" directory to your classpath
4 Edit desired sample. For example: ItemSearchSample.java

was muss ich bitte bei punkte 2 und 3 machen??
compilation path versteh ich überhaupt nicht. 
und bei classpath bin ich mir nicht sicher. in den umgebungsvariablen steht gar keiner drin. kann ich da jetzt irgendeinen ordner nehmen??


----------



## lhein (15. Jan 2008)

2 Add all sources under "src" directory to your compilation path.
zu Deutsch: Alles was Du im Zip unter src Verz. findest, sollst Du in dein src-Folder kopieren.

3 Add all jars files under "third-party/*" directory to your classpath 
zu Deutsch: Alles was unter third-party steht, sollst Du in deinen Class-Path aufnehmen

lr


----------



## ARadauer (15. Jan 2008)

arbeitest du mit eclipse?
wenn ja, dann hast du wahrscheinlich beim erstellen des projekts ein bin und ein src verzeichnis erstellt.

2.: die datein im src des amazon dings, kopierst du nun in dein src verzeichnis

3.: mach mal zusätzlich zum bin und src, noch ein lib verzeichnis, da kopierst du mal die jars unter thirdparty rein. dann in eclipse rechte maustauste auf dein projekt ->properties ->java build paht-> libraries->Add Jars... da fügts du nun alle jars ein die du ins lib verzeichnis kopiert hast.

dann sollte das gehn


----------



## oetzi (15. Jan 2008)

danke schonmal für die schnellen antworten!

mhh, ich muss sagen, dass ich zwar schon ein paar mal mit eclipse gearbeitet habe, aber das waren immer irgendwelche kleineren geschichten...

habe jetzt einfach mal nen neues projekt erstellt, dann per rechtklick darauf drei neue ordner erstellt (bin,lib,src) und dann die src dateien in das src verzeichnis kopiert und die jars wie oben beschrieben ebenfalls hinzugefügt.
dabei kommt dann folgendes raus





warum macht der mir neue pakete aus den unterordnern?? und in dem von hand erstellten src ordner ist nur eine datei drin.



und dann weiter:
1. fehlermeldung
 



2. fehlermeldung:




kann mir da auch irgendwer nen tipp geben?


----------



## lhein (15. Jan 2008)

kann es sein, dass du in deinem src noch ein src hast? das wäre falsch.

lr


----------



## oetzi (15. Jan 2008)

ne nicht wirklich
hier mal die explorer ansicht


----------



## lhein (15. Jan 2008)

Poste mal die .classpath Datei.

Da sollte in etwa sowas drinstehen:

```
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
        <classpathentry kind="src" path="src"/>
	<classpathentry kind="output" path="bin"/>
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
        ...ein paar lib einträge...
</classpath>
```

lr


----------



## ARadauer (15. Jan 2008)

in den properties unter java build path -> source
kannst du bestimmen wo deine quelldatein und deine compilierten dateinen liegen sollen.
also add folder.. da das src verzeichnis angeben und unten unter default outut folder, das bin verzeichnis.....


----------



## ARadauer (15. Jan 2008)

aja wegen der 2. fehlermeldung unter den properties -> java Compiler, muss das mindestens die Version 5 eingestellt sein.

kannst du das nicht, musst du unter schaun ob du eine 5.0 oder 6.0 jre installiert hast und die unter preferences -> java->installed jres hinzufügen......


----------



## oetzi (15. Jan 2008)

LR hat gesagt.:
			
		

> Poste mal die .classpath Datei.



<?xml version="1.0" encoding="UTF-8"?>
<classpath>
	<classpathentry kind="src" path="src"/>
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
	<classpathentry kind="output" path="bin"/>
</classpath>


@ARadauer: jo top. vielen dank. so sachen kenne ich einfach noch nicht. habe auf jedenfall schonmal einige fehler weniger 

"... kann nicht aufgelöst werden" bedeutet wohl, dass die Klasse nicht vorhanden ist oder?


----------



## lhein (15. Jan 2008)

Wenn das Deine .classpath Datei ist, dann sind die Libs nicht korrekt im BuildPath eingebunden.
Am besten nochmal in Ruhe ARadauer's Posting dazu ansehen und nachvollziehen.

lr


----------



## ARadauer (15. Jan 2008)

> so sachen kenne ich einfach noch nicht.


 ja es ist einweng verwirrend am anfang. überhaupt wenn man von einer ganz anderen technologie wie flash kommt.

Dir fehlt das Commons Logging. Apache Commons sind Klassen die nicht offiziell zum Standard gehören, aber doch sehr häufig eingesetzt werden. Die Amazon Bibliothek verlangts...

http://commons.apache.org

bzw konkret müsste das die richtige sein:

http://apache.4any.org/commons/logging/binaries/commons-logging-1.1.1-bin.zip
auf die jars ins lib verzeichnis und wie oben erklärt einbinden.


----------



## ARadauer (15. Jan 2008)

habs mir gerade selber runtergeladen

"Add all jars files under "third-party/*" directory to your classpath"

also bei mir waren unter third-party\jakarta-commons die jars fürs logging vorhanden, die musst du auch einbinden


----------



## oetzi (16. Jan 2008)

ARG, verdammt!
ich hatte zwischendrin nochmal nen neues projekt angelegt. und da habe ich das einbinden der jars vergessen *räusper* 

jetzt habe ich keine fehler mehr. werde mich jetzt mal dran geben und versuchen die vorgegebenen klassen anzupassen und dann den webservice anzusprechen

also bis gleich *g*


----------



## oetzi (17. Jan 2008)

mhh ich krieg dat nicht hin...

erstmal noch ne frage zu proxyeinstellungen in der eclipse. wo kann ich dat machen? sitze hier nämlich hinter nem proxy. unter: window > preferences finde ich keine möglichkeit nen proxy einzutragen

laut der anleitung hier:
http://developer.amazonwebservices.com/connect/entry.jspa?externalID=880&ref=featured
muss man ja gerade mal an 2 stellen der vorgegebenen java klasse was ändern.
und trotzdem krieg ich beim ausführen den fehler hier:


```
2008-01-17 09:11:22,962 [main] DEBUG com.amazonaws.a2s.AmazonA2SClient - Invoking ItemSearch request. Current parameters: {Operation=ItemSearch, ItemSearch.1.SearchIndex=Books, ItemSearch.1.Keywords=XML}
2008-01-17 09:11:22,964 [main] DEBUG com.amazonaws.a2s.AmazonA2SClient - Adding required parameters...
2008-01-17 09:11:22,964 [main] DEBUG com.amazonaws.a2s.AmazonA2SClient - 
Done adding additional required parameteres. Parameters now: {Operation=ItemSearch, Version=2007-10-29, ItemSearch.1.SearchIndex=Books, AWSAccessKeyId=0ZY8AVHTQPY2FGAQRM02, AssociateTag=, ItemSearch.1.Keywords=XML}
2008-01-17 09:11:22,964 [main] DEBUG com.amazonaws.a2s.AmazonA2SClient - Sending Request to host:  [url]http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService[/url]
2008-01-17 09:12:07,995 [main] DEBUG com.amazonaws.a2s.AmazonA2SClient - Retrying request. Attempt 1
2008-01-17 09:12:07,996 [main] DEBUG com.amazonaws.a2s.AmazonA2SClient - Retrying on failed sent request
2008-01-17 09:12:07,997 [main] DEBUG com.amazonaws.a2s.AmazonA2SClient - Retrying request. Attempt 2
2008-01-17 09:12:07,997 [main] DEBUG com.amazonaws.a2s.AmazonA2SClient - Retrying on failed sent request
2008-01-17 09:12:07,998 [main] DEBUG com.amazonaws.a2s.AmazonA2SClient - Retrying request. Attempt 3
2008-01-17 09:12:07,998 [main] DEBUG com.amazonaws.a2s.AmazonA2SClient - Retrying on failed sent request
2008-01-17 09:12:07,999 [main] DEBUG com.amazonaws.a2s.AmazonA2SClient - Maximum Number of Retry attempts reached, will not retry
2008-01-17 09:12:08,002 [main] ERROR com.amazonaws.a2s.AmazonA2SClient - Caught IOException exception
java.net.UnknownHostException: ecs.amazonaws.com
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
	at java.net.Socket.connect(Socket.java:516)
	at java.net.Socket.connect(Socket.java:466)
	at java.net.Socket.<init>(Socket.java:366)
	at java.net.Socket.<init>(Socket.java:239)
	at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:79)
	at org.apache.commons.httpclient.protocol.ControllerThreadSocketFactory$1.doit(ControllerThreadSocketFactory.java:90)
	at org.apache.commons.httpclient.protocol.ControllerThreadSocketFactory$SocketTask.run(ControllerThreadSocketFactory.java:157)
	at java.lang.Thread.run(Thread.java:595)
Caught Exception: Internal Error
Response Status Code: -1
Error Code: null
Request ID: null
XML: null
```


----------



## lhein (17. Jan 2008)

Window / Preferences / General / Network Connections

Es kann jedoch auch sein, daß es generell bei Dir nicht erlaubt ist, einen externen Webservice aufzurufen. Frag dazu einfach mal einen Admin (sofern Du es nicht bist).


----------



## oetzi (17. Jan 2008)

mhh da habe ich keinen solchen eintrag...





und auf meiner windowskiste habe ich auch ne eclipse drauf, die ich mir von yoxos geladen habe. da fehlt ebenfalls solch ein eintrag


----------



## lhein (17. Jan 2008)

> Eclipse HTTP Proxy
> 
> Setting HTTP proxy in Eclipse is fairly straightforward.
> 
> ...



entnommen von: Link

Probier das mal.

lr


----------



## oetzi (17. Jan 2008)

verdammt.
danke für die hilfe, aber ich kriege immernoch die fehlermeldung...


----------



## lhein (17. Jan 2008)

Probier mal folgendes:

1. Ruf mal im Browser den Link hier auf: ecs.amazonaws.com/onca/xml?Service=AWSECommerceService
Da solltest Du in etwa folgendes erhalten:


> AWS.InvalidOperationParameterThe Operation parameter is invalid. Please modify the Operation parameter and retry. Valid values for the Operation parameter include TagLookup, ListLookup, CartGet, SellerListingLookup, CustomerContentLookup, ItemLookup, SimilarityLookup, SellerLookup, ItemSearch, VehiclePartLookup, BrowseNodeLookup, CartModify, ListSearch, CartClear, VehiclePartSearch, CustomerContentSearch, CartCreate, TransactionLookup, VehicleSearch, SellerListingSearch, CartAdd, Help.


Wenn nicht, dann ist was faul.

2. versuch mal den Host anzupingen

```
ping ecs.amazonaws.com
```

Dein vollständiger Request kann auch über Http gehen: 
ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&Operation=ItemSearch&Version=2007-10-29&ItemSearch.1.SearchIndex=Books&AWSAccessKeyId=0ZY8AVHTQPY2FGAQRM02&AssociateTag=&ItemSearch.1.Keywords=XML

lr


----------



## oetzi (17. Jan 2008)

zu 1: jo über den normalen browser geht das. da bekomme ich das gleich wie du

hatte mal ne eclipse mit php plugin. da gab es doch auch nen browser in der eclipse oder? gibt es den wirklich nur mit dem php plugin oder komme ich auch anderes an den ran.
dann könnte ich den link da ja mal probieren

zu 2: 
pingen kann man hier leider nicht... hausrichtlinie. und mirzuliebe wird werden die admin das wohl nicht zulassen 


und der vollständige request funktioniert über nen normalen browser auch...


----------



## lhein (17. Jan 2008)

Kannst Du per Eclipse UpdateSite Aktualisierungen vornehmen, sprich Features etc aus dem Netz laden?
Das sollte dann konsequenterweise auch nicht gehen.
Einige Admins sind so clever und erlauben immer nur eine bestimmte Version von Java den Zugriff ins Netz. Frag mal Deinen Admin, wieso Du mit Java nicht ins Netz kommst.

lr


----------



## oetzi (17. Jan 2008)

mhh
erstmal die frage: ist das standardmäßig so, dass unter hilfe > software-updates > suchen und installieren keine update-sites eingetragen sind?
gibt es denn eine haupt-update seite, die ich da eintragen kann? habe z.b. nach nem tomcat plugin gesucht, das war bei der seite die ich da habe nicht dabei.

naja habe mir eine bei google gesucht und irgendein plugin versucht zu installieren.
ergebnis siehe unten... die frage ist, ob das ein problem des downloads ist, oder einfach eins der installation. nach dem ich die update site eingetragen hatte und auf weiter geklickt habe, suchte er nach updates/plugins und hat mir dann auch eine liste präsentiert.


----------



## lhein (17. Jan 2008)

Die Details wären interessant gewesen.

lr


----------



## oetzi (17. Jan 2008)

biddeschön 

Die Aktion für das Feature "eXo Platform 2.x Eclipse Plugin" konnte wegen Fehlern nicht abgeschlossen werden.
  Die Datei "C:\DOKUME~1\mkoll\LOKALE~1\Temp\eclipse\.update\1200571103981\1200571103994\eclipse53224.tmp" ist keine gültige JAR-Datei. [invalid END header (bad central directory offset)]
  Die Datei "C:\DOKUME~1\mkoll\LOKALE~1\Temp\eclipse\.update\1200571103981\1200571103994\eclipse53224.tmp" ist keine gültige JAR-Datei. [invalid END header (bad central directory offset)]


----------



## lhein (17. Jan 2008)

probier mal das:

subclipse.tigris.org

Es geht nur darum zu prüfen, ob der Download geht über Eclipse Update Site...


----------



## oetzi (17. Jan 2008)

jo hat wunderprächtig funktioniert!



wat sacht uns dat jetzt?


----------



## lhein (17. Jan 2008)

Das sagt uns, dass dein Eclipse und damit auch Java ins Internet kommt.
Also entweder hat Dein Client noch ein Problem oder aber der Webservice darf nicht raus ins Internet.


----------



## oetzi (17. Jan 2008)

mhpf, schritt zurück..
hatte es eben auf meiner windows kiste probiert. der einfachheit halber.
dachte eigentlich das würde sich von eclipse zu eclipse nicht unterscheiden...

wenn ich auf der linuxkiste bei der eclipse auf "find and install" klicke, schmiert mir die eclipse ab und nach einiger zeit bekomme ich folgende meldung nachdem ich auf "beenden erzwingen" geklickt habe.





so wirklich spaß macht das ganze so nicht


----------



## oetzi (17. Jan 2008)

ich glaub ich cancel das ganze erstmal. ich komme ja nicht wirklich weiter.
ich suche mal nach nem WS den ich mir lokal installieren/einrichten kann. 
dann habe ich das problem mit firewall etc. auf keinen fall.

ich danke nochmal für die hilfe!!!

PS: kann mir noch wer ne allgemeine seite sagen, wo ich updates/plugins wie das tomcat plugin herkriege?


----------

