Seite 2 von 2

Re: Hinweis zu der 3 Programmieraufgabe

Verfasst: 1. Dez 2009 19:55
von RomanMertyn
Webservice wird lokal auf einer Linux-VirtualBox Instanz getestet. Sollte jemand eine Umgebung mit Tomcat benötigen, erwarte ich eine Anleitung wie man Webservice mit Tomcat zu Verfügung stellt. GlassFish ist theoretisch auch möglich, stellt euch dann aber darauf ein, diesen selbst an meiner Maschine zu installieren und zu konfigurieren.

Re: Hinweis zu der 3 Programmieraufgabe

Verfasst: 2. Dez 2009 19:35
von Wambolo
Sorry für die Frage: Habe ich das jetzt richtig verstanden, dass der Client wirklich nur mit unserem selbst erstellen Webservice laufen muss. D.h. er muss nicht
sowohl mit unserem als auch mit dem online-Webservice arbeiten können.

Die einzige Bedingung ist, dass er eine Funktion zur Umrechnung der Einheiten besitzt und das war es? Bitte bestätigt mir nochmal kurz ob ich falsch oder richtig liege.

Re: Hinweis zu der 3 Programmieraufgabe

Verfasst: 2. Dez 2009 19:44
von Fl4sh
Mir bitte auch!
Ich verzweifel gerade eine "Duale Korrespondenz" hinzukriegen, da beim publishen des Services immer ein "Service" angehängt wird.
Die Methode heißt dann z.B. nicht mehr ConvertTemperature sondern ConvertTemperatureService. UNd das zieht einiges nach sich... o_O

Re: Hinweis zu der 3 Programmieraufgabe

Verfasst: 3. Dez 2009 14:53
von bios
also so wurde es uns am montag in der übung gesagt.
es soll ersichtlich sein,
dass ihr auch gegen eine "blackbox" den client schreiben könntet, also das ihr nicht den Quelltext des Dienst dafür braucht :)

Re: Hinweis zu der 3 Programmieraufgabe

Verfasst: 3. Dez 2009 18:50
von Fl4sh
OK, dann frag ich mal jetzt explizit...
Mein Problem liegt darin, dass nach dem Publishen die Methoden anders heißen, also z.B. ConvertTemperatureService anstatt ConvertTemperature.

Code: Alles auswählen

temperature = new client.referenceService.ConvertTemperature(url, new QName("http://www.webserviceX.NET/", "ConvertTemperature")).getConvertTemperatureSoap();
muss dann z.B. so heißen:

Code: Alles auswählen

temperature = new client.ownService.ConvertTemperatureService(url, new QName("http://www.webserviceX.NET/", "ConvertTemperatureService")).getConvertTemperatureSoapPort();
Ich habe jetzt die getConvertTemperatureSoap()-Methode umgeschrieben, so dass sie den richtigen Port (ConvertTemperatureSoap bzw ConvertTemperatureSoapPort) wählt und zurückgibt.

Jetzt bekomme ich aber beim Aufruf von "convertTemp" Exceptions um die Ohren geworfen. Ist ja auch verständlich, denn da steht sowas drin:

Code: Alles auswählen

    @WebMethod(operationName = "ConvertTemp", action = "http://www.webserviceX.NET/ConvertTemp")
    @WebResult(name = "ConvertTempResult", targetNamespace = "http://www.webserviceX.NET/")
    @RequestWrapper(localName = "ConvertTemp", targetNamespace = "http://www.webserviceX.NET/", className = "client.referenceService.ConvertTemp")
    @ResponseWrapper(localName = "ConvertTempResponse", targetNamespace = "http://www.webserviceX.NET/", className = "client.referenceService.ConvertTempResponse")
Was natürlich auf den www.webserviceX.NET-Service zugeschnitten ist.

Ich bin langsam echt am Verzweifeln. Mein erster Ansatz war einfach, je nach URL unterschiedliche Methoden aus unterschiedlichen Packages zu laden. Quasi ein Package für die Kommunikation mit dem eigenen Service und eines für den webserviceX.NET-Service...

Re: Hinweis zu der 3 Programmieraufgabe

Verfasst: 3. Dez 2009 20:44
von MisterD123
wsimport? Oo also bei uns hat das mit endpoint.publish und dann einfach wsimport alles wunderbar gepasst, keine umbenannten methoden oder sonstwas..

Re: Hinweis zu der 3 Programmieraufgabe

Verfasst: 3. Dez 2009 22:43
von RomanMertyn
Nicht zweifeln, sondern den ersten Post von diesem Thread aufmerksam durchlesen.