Wait... the image is loading.

JAVA + XML - Rapport

Table des matières:

Descriptions des objectifs
Difficultés rencontrées
Aspects techniques


mysqlBambi2.sxml et mysqlBambi2.xsl

Accès au graphique de température sans connexion à la base de données
   Source du WeatherTemp.java
Accès au graphique de pluviométrie sans connexion à la base de données
   Source du WeatherPluvio.java

Accès au graphique de pluviométrie avec connexion à la base de données
   Source du WeatherPluvio.java
Accès au graphique de température avec connexion à la base de données
   Source du WeatherTemp.java

basemeteo.xml
basemeteo.dtd
   Source du BaseMeteo.java


L'objectif de cet exercice était de générer, au moyen de Java et de XML, des graphiques en 2D représentant les valeurs contenues dans une table MySQL.
La table contient des données météorologiques sur les douze mois de l'année 2000 en Haute-Savoie (température, pluviométrie, hygrométrie), et le but était donc de générer trois graphiques (plus un, où auraient été visibles à la fois toutes les valeurs) à partir des données contenues.

Malheureusement, je me suis heurtée à toutes les sortes de limitations techniques possibles... et à l'arrivée, le résultat est très en dessous de mes espérances de départ...

J'ai tout d'abord commencé par créer une table "WeatherBambi" contenant les données météo, puis une page xml permettant de lire les données se trouvant dans cette table: voir les fichiers mysqlBambi2.sxml et mysqlBambi2.xsl.
Les choses ont commencé à se corser dès que j'ai voulu y intégrer un peu de java pour générer des graphiques... N'arrivant pas à les créer directement en appelant les données de la table, j'ai fini par me dire qu'il fallait que je décortique les étapes: j'ai donc fait deux petits applets qui me permettaient de générer les graphiques que je souhaitais sans connexion à la base de données , qui, après quelques heures, ont fini par fonctionner : graphique de température sans connexion + source du WeatherTemp.java / graphique de pluviométrie sans connexion + source du WeatherPluvio.java. Ces deux fichiers marchaient très bien en local chez moi, mais ne marchaient plus une fois sur le serveur de Tecfa. Je me suis alors rendue compte du premier qu'il fallait les recompiler en Java 1.1, Java 2 ne semblant pas être installé.
De là, j'ai pensé qu'il ne serait pas "impossible" de refaire la même chose avec une connexion à ma base de donnée, en remplaçant les valeurs fictives par celles contenues dans la base... J'ai donc créé deux nouveaux fichiers : WeatherTemp.java / WeatherPluvio.java. Malheureusement, ces deux fichiers ne voulaient absolument pas dialoguer avec la base, et les exemples basés à Tecfa ont fini par me laisser penser que ce que je cherchais à faire était impossible :-(
J'ai alors pensé que la seule solution était de faire là un Servlet... J'ai repris au début les graphiques avec connexion, et ait pris comme exemple le BambiServlet que j'avais fait quelques mois auparavant. Là, la connexion devenait possible, mais je n'arrivais pas à l'intégrer à ce que je devais faire avec SXML...

C'est là que je suis repartie de zéro: j'ai abandonné l'idée de stocker les données métérologiques dans une base de données MySQL, pour tenter de les stocker dans un fichier XML (basemeteo.xml / basemeteo.dtd), avec comme objectif de récupérer ces valeurs dans un applet Java. Je pensais alors que Xerces serait peut-être la fin de mes ennuis. J'ai repris tous les exemples sur Xerces que j'ai trouvé sur apache.org, puis, en m'appuyant en particulier sur le DOMFilter.java, j'ai essayé de recréer les graphiques souhaités (cf BaseMeteo.html / source: BaseMeteo.java). Malheureusment, là encore, toutes mes tentatives se sont révélées êtres des échecs cuisants :-(

Enfin et heureusement, après un coup de pouce dont j'avais bien besoin, on m'a fait remarquer qu'il manquait peut être tout simplement une partie archive dans mon tag "applet", afin que mysql soit reconnu par java. De là, les fichiers ont enfin fonctionné en appelant les données de la base.C'est pourquoi les fichiers suivants affichent enfin ce que j'escomptait au départ: graphique de température avec connexion + source du WeatherTemp.java / graphique de pluviométrie avec connexion + source du WeatherPluvio.java

J'ai dû commencer par installer Apache, MySQL et Tomcat sur ma machine, afin de pouvoir travailler en local. Ensuite, j'ai tatonné un long moment avant de trouver comment installer Forte For Java v3.0 (qui m'avait été fortement conseillé si je voulais programmer des applets)...
Le programme que j'ai utilisé pour le code XML/XSL est GoLive 5, et je me suis servi de Forte For Java pour tout ce qui ressemblait à du code Java et à de la compilation. J'ai d'ailleurs perdue à nouveau beaucoup de temps avant de trouver où je pouvais lui demander de compiler en Java 1.1 au lieu de Java 1.3...

Last modified 18.10.2001