Mittwoch, 10. Februar 2010

Die Code-Ninjas

Bernhard Fischer-Wasels vom SOA-Logistik BLOG hat mich auf diese sehr wissenschaftliche Betrachtung des JDevelopers aufmerksam gemacht ;-)

Tutorial 4: Web Serivce deployen

Zunächst benötigen wir einen Web Service mit der entsprechenden "Hello World" Geschäftslogik. Dazu legen wir zunächst ein neues Projekt in der gleichen Anwendung (File|new|Projects|Generic Project) an. In diesem erstellen wir eine einfach Java-Klasse:


Diese bekommen wir z.B. via rechter Maus (RMB = Right Mouse Button) auf dem Projekt, dann New|Java|Java Class.



Diese bekommt dann die Methode sayHello mit der entsprechenden "Geschäftslogik", idealerweise in der jeweiligen Landessprache. Für alle Norddeutschen z.B.:

  public String sayHello(String s)
  {
    return "Moin, moin " + s;
  }

Um diese Klasse mit den benötigten Annotationen für den Web Service zu versehen, bietet der JDeveloper wieder einen entsprechenden Wizard an:


Per RMB auf der Java-Klasse kann die Funktion 'Create Web Service...' ausgewählt werden. 


Die Vorgabe 'Java EE 1.5 with support for JAX-WS Annotations' ist genau richtig


Hier kann man die default-Werte bestätigen und die gewünschte Methode auswählen. Sollte die Methode nicht auswählbar sein, so kann man die Zeile trotzdem aktivieren und den JDeveloper über den Knopf 'Why Not?' nach dem Grund fragen.


Als Ergebnis bekommen wir einen fertigen Webservice vom JDeveloper geliefert, der so direkt ausführbar ist. Dazu wählen wir z.B. direkt auf dem Source-Code via RMB die Funktion 'Run' (grüner Pfeil).


Als Ergebnis erscheint der Web Service Testclient des JDeveloper. Hierin kann man jetzt das Argument (z.B. einen Namen) eingeben und via Send Request den Webservice direkt aufrufen. Das Ergebnis erscheint dann auf der rechten Seite.


Wer es genau wissen möchte, klickt unten auf den Reiter HTTP Content und kann sich die übertragene SOAP-Message im Detail ansehen.


WSDL gehört nicht gerade zu den lesbarsten Dialekten, daher ist an dieser Stelle auch der eingebaute WSDL-Browser nützlich.


Das Deployment auf den externen WLS läuft dann genau wie bei dem vorherigen Beispiel mit dem Servlet ab.


Wenn alles geklappt hat, taucht der Web Service in den Deployments des WLS auf. Hier kann man die Baumstruktur aufklappen, bis der eigentliche Service angezeigt wird.


Klickt man diesen an, kann man auf dem Reiter 'Testing' den 'Test Client' auswählen.


Hier lässt sich, genau wie im JDeveloper, der Parameter für den Web Service Aufruf eingeben und der Web Service aufrufen.


Auch der Web Service Tester des WLS zeigt die übertragenen SOAP Messages übersichtlich an. Dieses Beispiel sollte zeigen, wie einfach es ist, aus einem vorhandenen Java Code mit dem JDeveloper einen Web Service zu erzeugen und diesen auf dem Web Logic Server auszuführen.

WLS Tutorial 3: Deployment auf extrernen WLS

Nachdem das Servlet auf dem im JDeveloper integrierten WLS läuft, soll es jetzt auf einen standalone WLS deployed werden. Hierzu muss im JDeveloper zunächst eine Application Server Connection eingerichtet werden.



Hierzu wählt man per Rechtsklick auf das Projekt Deploy|New Deployment Profile...


Für das Servlet wird das Deployment Profile 'WAR File' ausgewählt ...


... und die Anwendung bekommt einen Namen. Der Rest kann mit den default-Werten akzeptiert werden. Wenn man hinterher erneut per Rechtsklick|Deploy auswählt, wird dieses als Ziel (timeapp to servername) angeboten.

 
 
Hier wählt man 'Deploy to Application Server',


wählt hier noch einmal die korrekte Verbindung aus und entfernt ggf. den Haken bei 'Deploy to all server instances in the domain' (wichtig, wenn sich in der gleichen Domain weitere Server befinden, die für andere Zwecke geplant sind).


Sofern man den Haken entfernt hat, folgt die Auswahl der betreffenden Server.


Nach Abschluss startet der JDeveloper das Deployment. Im Deployment-Log sollte überprüft werden, dass keine Fehler gemeldet werden.


In der Weblogic Console taucht die Anwendung jetzt unter Deployments auf und steht somit zur Verfügung.


Die URL ist abhängig von der Konfiguration des Servers und der Einstellungen im Deployment Profile, in meinem Fall ist es http://127.0.0.1:7103/WLS-Tutorial-TimeServlet-context-root/timeservlet.

Die Einstellungen des Deployment Profiles sind nur beim ersten Mal zu machen, danach kann einfach mit den bestehenden Einstellungen deployed werden. Somit ist ein externer WLS genau so einfach zu nutzen wie der im JDeveloper integrierte

Montag, 8. Februar 2010

Tip: Installation Oracle Service Registry 11g

Die Oracle Service Registry 11g (OSR) steht jetzt auf OTN zum Download zur Verfügung. Die Installationsanleitung verschweigt leider ein kleines aber extrem wichtiges Detail: das Installationsverzeichnis muss sich direkt in einem bestehenden WebLogic Server Homeverzeichnis befinden. Ist dies nicht der Fall, läuft der Installer zwar ohne Fehlermeldungen durch, die OSR ist aber nicht korrekt installiert.
Eine detailierte Anleitung, wie es richtig gemacht wird, gibt es im BLOG von Edwin Biemond.