Netcos AG   XCP™ Blackboard
Tip 2   Tip 2 Tip 4  Tip 4
Tip No. 3   Erstellen einer WAP Anwendung

Aufgabe

Die Außendienst-Mitarbeiter sollen das Telefonbuch der Firma über Ihr Handy über die Internetseite der Firma abfragen können.

Wichtige Grundlagen:

Das Abfragemodul erzeugt ein WML-Dokument. Dieses WML-Dokument kann dann über den Gateway des Handy-Providers auf einen Mobiltelefon mit WML-Browser dargestellt werden.

Ein Grundlagen-Kurs WML findet sich unter: http://www.nokia.de/de/mobiltelefone/technologie/wml-kurs/4420.html

Weitere Ressourcen:
http://www.forum.nokia.com
http://www.wapforum.com
http://www.symbian.com

Software für die Entwicklung:
— Texteditor
— Handy-WML-Browser-Simulator und je nach Bedarf ein WAP-Gateway-Simulator Zum Beispiel die Nokia-Tools unter http://www.forum.nokia.com Nach Anmeldung können Sie den WML-Browser-Simulator und das Gateway laden. Ein direkter Link kann hier nicht angegeben werden, da die Site sehr dynamisch ist. Suchen Sie nach Browser Simulator in der Suche der Site bzw. unter dem Link Tools&SDK.
Um eine URL über den Simulator aufrufen zu können,muss bei dem Nokia-Simulator auch zuvor das Gateway auf der gleichen Maschine gestartet werden.

— IXSQL Download unter: http://www.netcos.de/products/xcp_prod_download.html

— Beispiel Code - Download ZIP.

Hello World Beispiel:

Zuerst prüfen wir mit einem Hello-World-Beispiel die richtige Konfiguration aller Komponenten

Anlegen eins Ordners in unserm XCP-Arbeitsverzeichnis:
in meinen Fall unter

D:\xcp_software\ixsql-standard\jakarta-tomcat\webapps\ixsql-standard
den Ordner
wmldemo

Dort wird die Datei start.xcp angelegt:

start.xcp

<xcp:page gentype="taf">
   <xcp:code>
      <![CDATA[
      this.response.setContentType("text/vnd.wap.wml");
      ]]>
   </xcp:code>
   <xcp:tag class="com.netcos.taf.TafTemplate">
      <xcp:attribute name="page" readfile="templates/start.wml"/>
   </xcp:tag>
</xcp:page>

up

Wichtig ist hier das Setzen des Mime-Type der Antwort des XCP-Moduls mit:

this.response.setContentType("text/vnd.wap.wml");

So sieht das WML-Template aus:

start.wml

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
   <card id="Hello">
      <p>Hello World to iXSQL WAP</p>
   </card>
</wml>
up

Diese erste Datei wird als Template in der Datei start.wml im Unterordner templates abgelegt.

Aufruf über die URL:

http://localhost:28080/ixsql-standard/wmldemo/start.xcp

Im Simulator erscheint der Text.

Abfragen der Telefonauskunft:

1.) Verbindungsaufbau zur Datenbank ermöglichen
Zuvor muss in iXSQL die Datenbankverbindung über den Connection-Pool konfiguriert werden. Dies geschieht über die Dateien xcpinit.xml und pools.xml im WEB-INF Verzeichnis Ihrer iXSQL-Installation. In der pools.xml die Werte der Datei entsprechend anpassen und in der xcpinit.xml den Pool-Parameter einkommentieren.

2.) Tabelle anlegen
Unsere Telefondaten sind in einer Tabelle Telefonliste im Schema SCOTT abgelegt.

Aufbau:

SQL> create table Telefonliste ( id number(9)
                                 ,vorname varchar2(64)
                                 ,nachname varchar2(64)
                                 ,nummer varchar2(32)
                                );

Anlegen von Testdaten:

SQL> insert into Telefonliste values (1,'Martin','Huber','089 785643');
1 Zeile wurde erstellt.
SQL> insert into Telefonliste values (2,'Gerlinde','Böck','089 905645');
1 Zeile wurde erstellt.
SQL> insert into Telefonliste values (3,'Hubert','Messerschmidt','089
5623895');
1 Zeile wurde erstellt.
SQL>commit;

3.) Die SQL Abfrage
Die Tabelle soll im einfachsten Fall nach dem Nachnamen abgefragt werden:
Unser SQL für die SQL-Datei:

query.sql

select vorname,nachname,nummer
       from Telefonliste
       &where

Die SQL-Anweisung wird in der Datei query.sql gespeichert.

4.) Abfragemodul erstellen
Zuerst wird die Start-Seite erweitert, um die Abfrage aufzurufen:

start.wml

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
   <card id="Start">
      <p>Telefonauskunft mit iXSQL WAP
         <a href="#Telefon">Suchformular
      </p>
   </card>
   <card id="Telefon">
      <do type="accept">
         <go href="query.xcp?qp_like_nachname=$qp_like_nachname"/>
      </do>
      <p>Nachname:
         <input type="text" name="qp_like_nachname" title="Nachname"/>
      </p>
   </card>
</wml>
up

Dann muss die XCP-Seite für das Query-Modul erstellt werden:

query.xcp

<xcp:page gentype="taf">
   <xcp:code>
      <![CDATA[
      this.response.setContentType("text/vnd.wap.wml");
      ]]>
   </xcp:code>
   <xcp:tag class="com.netcos.taf.TafTemplate">
     <xcp:attribute name="page" readfile="templates/query.wml"/>
     <xcp:tag class="com.netcos.taf.TafMarkupSql">
        <xcp:attribute name="sql" readfile="sql/query.sql"/>
     </xcp:tag>
   </xcp:tag>
</xcp:page>
up

Das passende Template:

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
   <card id="Hello">
      <p>Vorname - Nachname - Nummer</p>
      ##DATAROW_BEGIN##
      <p>$$Vorname$$ - $$Nachname$$ - $$Nummer$$</p>
      ##DATAROW_END##
      <p><a href="start.xcp">Zurück</a></p>
   </card>
</wml>
up

Damit kann nun über ein WAP-Handy mit iXSQL die Telefonliste abgefragt werden.

Beispil WAP Beispil WAP Beispil WAP