Voilà, ça fait cinq ans que je n'ai plus fait de Java et j'essaies tant bien que mal de m'y remettre, d'abord avec Netbeans puis finalement Eclipse.
Je souhaite développer un programme Java accessible en ligne et facilement hébergeable (donc logiquement sous forme d'applet). Ce programme nécessite de stocker de l'information. Au départ, j'avais pensé utiliser des fichiers texte mais je rencontre des problèmes (ce qui ne m'étonne pas, sachant qu'il y a des restrictions au niveau I/O pour des raisons de sécurité).
En testant le programme dans un environnement Apache local, l'applet est capable de lire et d'écrire dans des fichiers situés dans le même répertoire que le .class. Par contre, une fois remis sur Free.fr (Online en fait, mais c'est du pareil au même), l'écriture ne fonctionne plus.
Ma question est double :
- comment résoudre le problème ?
- y a-t-il une façon plus intelligente de procéder ?
Merci d'avance !
# Bac à sable
Posté par Sébastien Koechlin . Évalué à 3.
La bonne méthode est de socker les données sur le serveur qui héberge l'applet. Plutot en HTTP afin de pouvoir passer les proxys.
[^] # Re: Bac à sable
Posté par Robert VISEUR (site web personnel) . Évalué à 2.
C'est bien ce que je veux faire, car j'avais quand même compris cette limitation par rapport au disque de l'utilisateur.
De toute manière, je veux que l'information soit centralisée (et je ne fais pas en PHP pour ne pas être gêné par les 'time out' des pages écrites en PHP (certains traitements que je veux implémenter peuvent être relativement longs).
> Plutot en HTTP
Qu'entends-tu par là ? Si tu as un code exemple (ou au moins les fonctions sur lesquelles je devrais me documenter dans ce cadre d'utilisation), ce serait génial !
[^] # Re: Bac à sable
Posté par jcs (site web personnel) . Évalué à 3.
Qu'entends-tu par là ? Si tu as un code exemple (ou au moins les fonctions sur lesquelles je devrais me documenter dans ce cadre d'utilisation), ce serait génial !
A mon avis, l'idée est d'ouvrir une connexion HTTP avec le serveur où se trouve l'applet pour éviter les problèmes de signature d'applet et de faire un POST contenant le fichier que tu veux stocker.
Côté client utilise les classes URL et HttpURLConnection pour faire un POST. Pour cela utilise la méthode setRequestMethod("POST") de HttpURLConnection. Attention avec la JVM microsoft quand on ouvre une connexion sur une URL de type http://example.org(...) l'objet URLConnection renvoyé par openConnection() dans la classe URL n'est pas de type HttpURLConnection, cf google pour plus de détails.
Côté serveur un simple script PHP/Perl/Python récupère le contenu du POST et le sauvegarde.
# Re
Posté par Roger Rabbit . Évalué à 3.
pour qu'une applet puisse acceder aux ressources clientes ( matériels divers,
les disques par exemple ) , elle doit être signée.
un exemple de A à Z est fourni ici :
http://www.developer.com/java/other/article.php/3303561(...)
En gros, un fois ton applet correctement signée, si l'utilisateur accepte
de truster ta signature, tu peux modifier les regles de sécurité de
java et donc accèder a des ressources qui ne sont pas pas disponibles
par défaut.
# Java Web Start
Posté par Nelis (site web personnel) . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.