[JavaWebStart] Lire et écrire dans un fichier via HTTP

Lire et écrire dans un fichier via HTTP [JavaWebStart] - Java - Programmation

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

Reply

Marsh Posté le 19-11-2003 à 17:11:39   

Reply

Marsh Posté le 19-11-2003 à 17:24:16    

tu vas pas pouvoir écrire de manière simple directement dans des fichiers à distance


---------------
http://runnerstats.net
Reply

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)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

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

Reply

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.


---------------
Au royaume des sourds, les borgnes sont sourds.
Reply

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, ..)
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)


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)


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

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 ? [:mlc]
"Allez aujourd'hui j'fous l'Bronx sur Google : File.write("http://www.google.com" );"
Faut pas non plus trop en demander, hein :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 19-11-2003 à 18:01:00    

Taiche a écrit :


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)

tu connais bien webdav toi? [:zebra33] [:cupra]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 19-11-2003 à 18:01:33    

ouais au pire, il choppe son fichier en ftp et le renvoie :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 19-11-2003 à 18:05:20    

the real moins moins a écrit :

tu connais bien webdav toi? [:zebra33] [:cupra]


Etudié y a un peu moins de 2 ans pour les besoins de la boîte :o Le truc n'a pas abouti mais j'avais installé plein d'trucs sur ma machine permettant de le gérer [:ddr555]
Depuis, j'l'ai réinstallé sur ma machine perso pour des devs à moi :o
C'est un peu le même principe que les messages SOAP, en fait : du XML partout et roule Raoul :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 19-11-2003 à 18:05:20   

Reply

Marsh Posté le 19-11-2003 à 18:07:56    

tu m'interesses :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 19-11-2003 à 18:08:48    


Ouvre un topic ou MP, alors, passke polluer cai mal :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 19-11-2003 à 18:11:46    

Taiche a écrit :


Ba attends, t'imagines l'anarchie sur Internet s'il suffisait de faire un simple File.write() sur une URL en http ? [:mlc]
"Allez aujourd'hui j'fous l'Bronx sur Google : File.write("http://www.google.com" );"
Faut pas non plus trop en demander, hein :o


 
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.

Reply

Marsh Posté le 19-11-2003 à 18:15:28    

ok.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 19-11-2003 à 18:18:44    

Math_Caen 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.


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 [:spamafote]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 19-11-2003 à 18:24:12    

Taiche 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 [:spamafote]


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 ?

Reply

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.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

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 [:joce]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

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é)

Reply

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 [:joce]


Ah ouais, sans servlet ça va être chaud [:ddr555]
 
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 [:ddr555]) ; maintenant, le tout c'est de savoir comment déployer le bouzin sur le serveur :o


Message édité par Taiche le 19-11-2003 à 18:37:04

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 19-11-2003 à 18:41:53    

Taiche a écrit :


Ah ouais, sans servlet ça va être chaud [:ddr555]
 
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 [:ddr555]) ; maintenant, le tout c'est de savoir comment déployer le bouzin sur le serveur :o

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 [:mlc]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

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 [:mlc]


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 [:spamafote]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

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

Reply

Marsh Posté le 25-11-2003 à 15:05:55    

terrible?
 
(ps: security flaw flagrante si tu passes le chemin de la destination à ta servlet)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

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+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

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.

Reply

Marsh Posté le 25-11-2003 à 15:17:18    

faut encore avoir un serveur qui le supporte ...
(apache supporte ça?)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 25-11-2003 à 15:49:33    

the real moins moins a écrit :

faut encore avoir un serveur qui le supporte ...
(apache supporte ça?)

De toute facon, quoiqu'il fasse (HTTP PUT, WEBDAV, ...) tout depend de la configuration et du support serveur.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 25-11-2003 à 15:57:18    

certes


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh 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

Reply

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


Message édité par darklord le 03-12-2003 à 08:23:42

---------------
Just because you feel good does not make you right
Reply

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 ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

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 ?

Reply

Marsh Posté le 03-12-2003 à 10:31:13    

ben t'écris tous les files de ton tableau et ensuite tu les lis [:spamafote]
je vois pas le problème ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

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 ?

Reply

Marsh Posté le 03-12-2003 à 10:53:55    

:heink:  
 
ben pour envoyer le contenu du tableau, faut bien que tu les envoies tous ...  
 
 


---------------
ma vie, mon oeuvre - HomePlayer
Reply

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 ?

Reply

Marsh Posté le 03-12-2003 à 11:05:53    

[:totoz]
 
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 ? :o


---------------
ma vie, mon oeuvre - HomePlayer
Reply

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.

Reply

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 ?

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed