21Jan
Da es sich bei Axis2 um eine Neuentwicklung gegenüber der Vorgängerversion handelt, wurde ein komplett anderes Data Binding Konzept umgesetzt. Zum Einsatz kommen bestehende Lösungen wie:
die in Axis2 integriert werden. XMLBeans stammen ursprünglich von BEA Systems und wird von Apache weiterentwickelt. XMLBeans heben den Informationsgehalt eines XML-Infosets während der Verarbeitung auf, so dass Metadaten zur Verfügung stehen, die bspw. für eine Schema-Validierung genutzt werden können. Wenn XMLBeans als Data Binging genutzt werden sollen, muss “-d xmlbeans” als Parameter angegeben werden. (Defaultwert ist ADB):
WSDL2JAVA ... -d xmlbeans meine.wsdl
Das Framework generiert für jeden benutzerdefinierten Datentyp eine Interfaceklasse, mit der man bei der Entwicklung in Berührung kommt. Alle Interfaces erben von XMLObject und erhalten eine interne statische Inner Class “Factory” mit der eine Klasse des jeweiligen Types erzeugt werden kann. Beispiel zur Erzeugung eines Objektes vom Typ Kunde:
KundeDocument kundeDoc = KundeDocument.Factory.newInstance();
Ein XML-Document kann über die Methode “save” in ein XML-Format serialisiert werden. Mit “xmlText” wird ein String als XML zurückgegeben.
String kundeXml = kundeDoc.xmlText();
kundeDoc.save(new File("kundeDoc.xml"));
Andere Data Bindings bilden Datantypen wie bspw. xsd:String, xsd:Token, xsd:anyUrl oder xsd:Name auf String ab. XMLBeans bietet hierfür eigene Datentypen, um die unterschiedlichen Wertebereiche und semantischen Bedeutung zu behalten.
15Jan
Android ist ein von der Open Handset Alliance, der mehr als 30 Unternehmen angehören, iniziertes Betriebssystem für mobile Endgeräte. Das Android SDK, welches von Google entwickelt wird, beinhaltet das Betriebssystem, die Middleware und Beispielanwendungen und steht unter http://code.google.com/android/ zum Download bereit. In der zweiten Jahreshälfte 2008 sollen die ersten Endgräte auf den Markt kommen, die das neue Betriebssystem unterstützen. Es soll aktuelle Techniken wie SQLite, Bluetooth, WiFi, 2D/3D Grafik, verschiedene Audio- und Videocodece und einen integrierten Browser unterstützen. Zur Entwicklung mit dem javabasierten Framework steht ein Eclipes Plug-In und ein Emulator für Tests zur Verfügung.
-
Eclipse Plug-In installieren: Unter Help > Software Updates > Find and Install… https://dl-ssl.google.com/android/eclipse/ einbinden und installieren.
-
Android SDK runterladen und installieren: http://code.google.com/android/download.html
- Danach unter Window > Preferences > Android den SDK-Path angeben.
Beispiel Projekt:
- Neues Android Projekt erstellen: New > Other > Android Es muss ein Name des Projektes und der Name der Stub-Klasse angegeben werden, die durch das Plug-In generiert werden soll.
- Implementieren der Activity Klasse.

- Test. Projekt markieren: Run As > Android Application wählen. Nach dem der Emulator gestartet wurde, startet die eigene Anwendung.

08Jan
Um Webdienste vor Missbrauch durch Webbots zu schutz werden CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) eingesetzt. Eine javabasierte Lösung, die einfach zu integrieren und implementieren ist, bietet das Framework jCaptcha an (http://jcaptcha.sourceforge.net). Es steht unter LGPL und bietet eine Reihe vordefinierter Captchaimages an. Im folgenden möchte ich beispielhaft erläutern, welche Schritte nötig sind, um eine Captchalösung mithilfe des jCapchta-Frameworks in eine bestehende J2EE Anwendung einzubinden.

-
Ein Nutzer fordert im Browser eine Seite an, die durch ein Captcha geschützt werden soll.
-
Das Template enthält das Captcha-Image und ein Textfeld für die Lösung. Als Source für das Image wird “/jcaptcha„ angegeben.

-
Die Singleton Captchaservice-Klasse wird aus dem Template heraus aufgerufen. Weil Pattern „/jcaptcha“ aus Template auf die CaptchaService Klasse mapped. Das Mapping muss in der web.xml definiert werden.

-
Beispiel einer einfachen CaptchaService implementation:

-
Das generierte Captchaimage in den Response legen und an Template senden. Der Contenttype des Responses muss “jpeg” sein. Beispiel:

-
Zum Schluss muss noch die Klasse zur Überprüfung des Ergebnisses implmentieren werden. Bsp:
07Jan
Das Webservice Framework Axis2 von Apache steht seit 2005 in der Version 2 zur Verfügung und bietet einige Vorteile gegenüber der Vorgängerversion. Aus meiner Sicht sind es vor allem Performance Steigerung, höhere Flexibilität beim Deployment von Services und eine verbesserte Unterstützung von aktuellen Standards, die einen Einsatz von Axis2 sinnvoll macht.
Anhand eines Beispieles soll im Folgenden schrittweise gezeigt werden, wie eine einfache Axis2 Anwendung mit Eclipse und Web Tools Platform 2.0.1 entwickelt werden kann.
Für dieses Beispiel wird benötigt:
- WTP in Version 2.0.1 (http://www.eclipse.org/webtools)
- Tomcat 5.5 (http://tomcat.apache.org)
- AXIS2 Framework 1.2 als Standard Binary Distribution (http://ws.apache.org/axis2/download.cgi)
Vorbereitung im Eclipse:
- Tomcat einbinden (Preferences > Server > Installed Runtimes)
- Axis2 einbinden (Preferences > Webservices > Axis2 Preferences > Axis2 Runtime Location)
Erstellen einer Anwendung
- Neues DynamicWeb-Projekt anlegen und Axis2 Funktionalität einbinden (File -> New -> Other… -> Web -> DynamicWeb Project)

- Eigene Serviceklasse erstellen und implementieren. (File -> New -> Class) Beispiel:

-
Webservice erstellen (File -> New -> Other… -> Web Services -> Web Service) . Im Wizard die Serviceklasse auswählen und Webservice Type: „ Bottom up Java bean Web Service“; Server: „Tomcat v5.5 Server“ ; WICHTIG Web Service Runtime: „Apache Axis2″. Optional kann ein Testclient erstellt werden.

- Service.xml erzeugen lassen oder eine Vorhandene einbinden
- Server starten, Anwendung deployen und testen. Unter “http://localhost:8080/WebserviceTest/” steht dann eine Administrationsoberfläche von Apache zur Verfügung, auf der alle Services aufgelistet sind.
- Optional kann ein Testclient erstellt werden. (New > ohter > Web Services > Web Service Client)
Link Tipp: Eclipse Plug-In zur Codegenerierung für Axis2 (http://ws.apache.org/axis2/tools/1_2/eclipse/wsdl2java-plugin.html)