Lire et écrire dans un fichier via HTTP [JavaWebStart] - Java - Programmation
Marsh Posté le 19-11-2003 à 17:24:16
tu vas pas pouvoir écrire de manière simple directement dans des fichiers à distance
Marsh Posté le 19-11-2003 à 17:31:20
passe par une servlet, ou n'importe quel procédé coté serveur(php, ..)
sinon t'as le protocole webdav qui doit faire ce genre de trucs aussi (mais je le connais pas du tout donc je jure de rien... et puis je sais pas ds quelle mesure c supporté en java)
Marsh Posté le 19-11-2003 à 17:55:54
passé par une servlet, je vois pas trop comment. C'est pourtant pas compliqué ce que je veux faire. new File(...) et ensuite file.write. Dite moi pas k'c pas vrai k'y a rien ki puisse m'aider à faire ça. lol
Marsh Posté le 19-11-2003 à 17:58:23
Math_Caen a écrit : passé par une servlet, je vois pas trop comment. C'est pourtant pas compliqué ce que je veux faire. new File(...) et ensuite file.write. Dite moi pas k'c pas vrai k'y a rien ki puisse m'aider à faire ça. lol |
Ben si, y'a des trucs pour faire ça, mais côté serveur. Le protocole HTTP ne permet pas, à ma connaissance, de modifier des fichiers sur un hôte distant.
Marsh Posté le 19-11-2003 à 17:59:22
the real moins moins a écrit : passe par une servlet, ou n'importe quel procédé coté serveur(php, ..) |
Sisi, WebDAV sert à ça. C'est une sorte de FTP via HTTP, quoi
Pour le support en Java, je sais qu'il y a plusieurs libs qui le font et il existe aussi des (mais surtout un, SkunkDav) clients WebDAV en Java qui sont Open Source. Pour le serveur, il existe mod_dav pour Apache qui fait très bien l'affaire.
(c'était "la minute WebDAV c'est bien pour passer les proxies/firewall à la con", je vous remercie de votre attention)
Marsh Posté le 19-11-2003 à 18:00:44
Math_Caen a écrit : passé par une servlet, je vois pas trop comment. C'est pourtant pas compliqué ce que je veux faire. new File(...) et ensuite file.write. Dite moi pas k'c pas vrai k'y a rien ki puisse m'aider à faire ça. lol |
Ba attends, t'imagines l'anarchie sur Internet s'il suffisait de faire un simple File.write() sur une URL en http ?
"Allez aujourd'hui j'fous l'Bronx sur Google : File.write("http://www.google.com" );"
Faut pas non plus trop en demander, hein
Marsh Posté le 19-11-2003 à 18:01:00
Taiche a écrit : |
tu connais bien webdav toi?
Marsh Posté le 19-11-2003 à 18:01:33
ouais au pire, il choppe son fichier en ftp et le renvoie
Marsh Posté le 19-11-2003 à 18:05:20
the real moins moins a écrit : tu connais bien webdav toi? |
Etudié y a un peu moins de 2 ans pour les besoins de la boîte Le truc n'a pas abouti mais j'avais installé plein d'trucs sur ma machine permettant de le gérer
Depuis, j'l'ai réinstallé sur ma machine perso pour des devs à moi
C'est un peu le même principe que les messages SOAP, en fait : du XML partout et roule Raoul
Marsh Posté le 19-11-2003 à 18:07:56
ReplyMarsh Posté le 19-11-2003 à 18:08:48
the real moins moins a écrit : tu m'interesses |
Ouvre un topic ou MP, alors, passke polluer cai mal
Marsh Posté le 19-11-2003 à 18:11:46
Taiche a écrit : |
Tout d'abord, étant donné que c'est en JavaWebStart et que je tape sur des fichiers, mon jar est donc signé donc l'utilisateur est au courant. De plus, il y a qd meme un peu de sécurité car sur les serveur publique on a pas non plus tous les droits et en particulier écriture et exécution.
Marsh Posté le 19-11-2003 à 18:15:28
ReplyMarsh Posté le 19-11-2003 à 18:18:44
Math_Caen a écrit : |
1) Un JAR signé te permet d'effectuer tout type d'action disponible en Java sur la machine cliente pas sur le serveur.
2) Comment veux-tu que le serveur HTTP fasse la différence entre toi et un utilisateur de base ? Y a un système d'authentification ? Si oui, quelle est l'appli qui gère cette authentification ?
Faut pas se leurrer et confondre Protocole de Transfert d'Hyper-Texte (HTTP, donc) et appel de procédure à distance (connu aussi sous le non de RPC, il existe divers protocoles sur le sujet dont CORBA, RMI ou SOAP). HTTP sert à transférer des données, pas à effectuer des actions sur un serveur
Marsh Posté le 19-11-2003 à 18:24:12
Taiche a écrit : |
Je suis d'accord pr la signature. en effet ça informe juste le client ke l'on tape chez lui.
Pour ce qui est de la sécurité de mon appli, tt d'abord c'est sur un reso nationale sécurisé ke l'on télécharge l'appli. Ensuite, les fichiers ou je v écrire sont pas non plus à la racine du serveur donc fo qd meme connaitre l'url. De plus, étant donné ke je gère moi meme ce ki va ê écrit ça pose pa de pb.
Mais bon en gros comment je dois faire ? utiliser soap par exemple ?
Marsh Posté le 19-11-2003 à 18:31:56
Oui, SOAP est un bon compromis si tu dois utiliser absolument HTTP comme couche de transport (les autres protocoles que je connais vont passer par un port différent que l'habituel 80). Maintenant, faut mettre en place toute l'archi qui va bien côté serveur et là, tout dépend de tes besoins et tes contraintes.
Marsh Posté le 19-11-2003 à 18:33:11
Taiche a écrit : Oui, SOAP est un bon compromis si tu dois utiliser absolument HTTP comme couche de transport (les autres protocoles que je connais vont passer par un port différent que l'habituel 80). Maintenant, faut mettre en place toute l'archi qui va bien côté serveur et là, tout dépend de tes besoins et tes contraintes. |
euh si il "peut" pas faire de servlet, je vois pas comment soap pourrait etre possible
Marsh Posté le 19-11-2003 à 18:35:37
bon et ben sur ces bonnes nouvelles du front je v rentré chez moi et méditerà ts ça. merci de votre aide et surment à demain pour de nouvelles aventures. (j'en ai mal à la tete rien ke d'y pensé)
Marsh Posté le 19-11-2003 à 18:35:42
the real moins moins a écrit : euh si il "peut" pas faire de servlet, je vois pas comment soap pourrait etre possible |
Ah ouais, sans servlet ça va être chaud
EDIT : enfin si, y a bien des implémentations autres qu'en servlet (étant donné que c'est MS qui a initié cette idée de SOAP, je doute que Java soit la seule alternative ) ; maintenant, le tout c'est de savoir comment déployer le bouzin sur le serveur
Marsh Posté le 19-11-2003 à 18:41:53
Taiche a écrit : |
ben ui, tu peux meme le faire en php, mais jveux dire bon, à priori appeler un bete script php sera certainement plus simple que commencer à jouer avec du soap
Marsh Posté le 19-11-2003 à 19:43:37
the real moins moins a écrit : ben ui, tu peux meme le faire en php, mais jveux dire bon, à priori appeler un bete script php sera certainement plus simple que commencer à jouer avec du soap |
Bin a priori ui ; maintenant, faut aussi connaîtr PHP et l'avoir installé sur la machine...
'fin bon, c'est lui qui vois en fonction de cee qu'il sait (et peut) faire
Marsh Posté le 25-11-2003 à 14:59:51
Re bonjour tt le monde, donc j'ai adopté la solution d'avoir une servlet sur le serveur. Donc cette servlet attend le chemin du fichier ou je souhaite écrire et son contenu. C'est sur ce dernier paramètre que je me pause une question : ça doit pas ê terrible que je balance directement le contenu du fichier ? auriez vous une suggestion de comment vos mieux que je m'y prenne ? Merci à tous
Marsh Posté le 25-11-2003 à 15:05:55
terrible?
(ps: security flaw flagrante si tu passes le chemin de la destination à ta servlet)
Marsh Posté le 25-11-2003 à 15:15:21
Si ses besoins ne sont pas avec plein de contraintes securitaires, il peut toujours essayer le HTTP PUT aussi...
A+,
Marsh Posté le 25-11-2003 à 15:16:59
En gros moi ce ke je veux c'est écrire dans un fichier sur un serveur depuis mon appli en javawebstart.
Marsh Posté le 25-11-2003 à 15:17:18
faut encore avoir un serveur qui le supporte ...
(apache supporte ça?)
Marsh Posté le 25-11-2003 à 15:49:33
the real moins moins a écrit : faut encore avoir un serveur qui le supporte ... |
De toute facon, quoiqu'il fasse (HTTP PUT, WEBDAV, ...) tout depend de la configuration et du support serveur.
A+,
Marsh Posté le 25-11-2003 à 15:57:18
ReplyMarsh Posté le 02-12-2003 à 16:40:56
Re bonjour tt le monde, donc je m'en suis sortie avec ma servlet pr écrire mes fichiers sur mon serveur, je vous remercie tous pour votre contribution. Néanmoins, j'aurais encore un peu besoin de vous car j'ai encore une question toujours du meme style. Je m'explique : Je souhaiterai listé le contenu d'un répertoire sur mon serveur, et donc que ma servlet (j'adore ce truc maintenant. lol) me retourne un File[]. Mon problème (je pense que c'est pas grand chose en fait) c'est que je souhaiterai en gros que ma servlet fasse un truc du style :
request.setAttribute("fListePageHtml", fListePageHtml);
fListePageHtml étant un File[].
De l'autre coté, mon appli attend un truc du style :
f =urlConn.getRequestProperty("fListePageHtml" );
où f est aussi un File[]
Voila, j'espère que j'ai été clair et que vous pourrez m'aider.
merci
Marsh Posté le 03-12-2003 à 08:23:00
fais un nouveau topic pour les nouvelles questions. Ce forum constitue une base de connaissances. En créant un nouveau topic avec un titre clair, tu permets à une autre personne ayant le meme problème que toi de trouver la solution
Marsh Posté le 03-12-2003 à 09:28:21
en même temps, on s'éloigne pas trop là ...
dis, tu as déjà pensé à faire du RMI ??? parce que j'ai l'impression que ce que tu veux faire n'a pas grand chose à voir avec le http ...
pour ta question, le plus simple quand tu veux passer des objets entre client et serveur c'est de les sérialiser ... ou bien si tu aimes pas tu te fais tes méthodes de lecture/ecriture à la main ...
Marsh Posté le 03-12-2003 à 09:57:12
Re, en effet j'avais pensé à faire un nouveau sujet, mais je me suis dis que cela concerné toujours un peu le même sujet, et que du cout si une personne a le meme problème que moi le fait d'avoir tous dans le meme sujet lui sera plus utile.
Sinon, benou pour ce qui est de sérialiser, je vois pas trop ce que c'est, alors je pense que je vais opté pour la deuxième solution. Par contre je sais pas comment envoyer mon tableau de File, tu pourrais m'éclairé un peu ?
Marsh Posté le 03-12-2003 à 10:31:13
ben t'écris tous les files de ton tableau et ensuite tu les lis
je vois pas le problème ...
Marsh Posté le 03-12-2003 à 10:33:13
tu ve dire ke je pe pa envoyer directement tous mon tableau ? je dois envoyé le nom des fichiers 1 par 1 ?
Marsh Posté le 03-12-2003 à 10:53:55
ben pour envoyer le contenu du tableau, faut bien que tu les envoies tous ...
Marsh Posté le 03-12-2003 à 11:01:08
ouai mais on pe pa envoyé d'un coup d'un seul le tableau en faisant un truc du style : envoi(tableau), fo faire envoi(tableau[i]) autant de fois ke necessaire ?
Marsh Posté le 03-12-2003 à 11:05:53
bon, tu va l'envoyer comment ????
dans le corp de la réponse HTTP j'imagine, non ?
ben dans tu écris le contenu de ton tableau, genre un File par ligne et tu envoies. Coté client, tu lis un File sur chaque ligne et tu recré ton tableau.
Je vois la difficulté là, hein ?
Marsh Posté le 03-12-2003 à 11:31:27
ok donc c bien ce ke je pensais alors va falloir ke j'envoi chaque nom de fichier. merci bien pr ton aide.
Marsh Posté le 03-12-2003 à 15:45:28
J'y est encore réfléchi, et je comprend tjrs pa pk je pe pa lui balancé directement mon tableau. Dans une autre appli ou j'ai utilisé des JSP, j'ai bien m'a servlet ki pe envoyé directement un vecteur, et ma JSP ki le récupère, pk je pourrais pas faire la meme chose ici entre mon appli Java Web Start et ma servlet ?
Marsh Posté le 19-11-2003 à 17:11:39
Salut, j'ai une appli qui fonctionne en JavaWebStart, et elle doit lire et écrire dans des fichiers sur un serveur distant. Je dois donc utiliser le protocole http pour accéder à mes fichiers. Mon problème, c'est que new File("http://adrServeur/toto.txt" ) ça marche pas. J'ai essayé aussi avec java.net.HttpURLConnection mais on est un peu limité. Quelqu'un pourrait il m'aider ?
D'avance merci