Quelles restriction pour les sockets dans une applet ???

Résolu
supers03 Messages postés 106 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 1 décembre 2008 - 11 févr. 2005 à 08:08
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 - 27 févr. 2005 à 21:13
Je vous expose mon problème : j'avais une application serveur, mais comme elle ne marchai pas partout je l'ai transformé en applet... le problème est que lorsque je lance l'applet d'une page web je n'arrive pas à créer le serveur socket :

ServerSocket s = new ServerSocket(13);
me renvoi une exception

Par contre, lorsque je lance l'applet à partir d'éclipse, j'arrive à créer le serveur...

Donc voici mes questions :
- est-ce normal ?
- quelles sont les restrictions pour une applet (au niveau réseau) ?
- peut-on lancer une applet sans utiliser de navigateur web ou un logiciel de developpement comme eclipse ?

Merci d'avance

13 réponses

cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
11 févr. 2005 à 10:58
Salut



C'est tout à fait normal que cela marche sous Eclipse puisque Eclipse
crée un fichier de securité avec tous les droits !!! Regarde dans les
specs comment faire ton fichier de policy.



Tu trouveras des infos ici dans ce FAQ SUN:

http://java.sun.com/sfaq/

et voici le tutorial quasi ultime sur ce sujet là :

http://www.javaworld.com/javaworld/jw-12-2000/jw-1215-security.html



A niveau pour une applet, la seule chose qu'elle
ait le droit de faire c'est de se connecter au serveur à partir de
laquelle elle provient, c'est à dire à l'adresse où se situe son
binaire.



Pour lancer une applet sans Eclipse ou sans page web : appletviewer



Normalement avec tous les éléments que je viens de te passer tu devrais t'en sortir tout seul ... bonne lecture !!!



@+
supers03 Messages postés 106 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 1 décembre 2008
11 févr. 2005 à 12:28
Merci beaucoup ça va me faire de la lecture dans le train ce soir ;)

une petite question : l'appletviewer est disponible "en série" dans la console java d'une personne lambda ??? (moi je sais que je l'ai mais je sais pas si ça s'est installé avec eclipse ou si je l'avais déjà)
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
11 févr. 2005 à 13:27
Salut



Malheuresement non puisque c'est un outil de développeur pour éviter
d'avoir à faire des pages web (qui est le conteneur de l'applet !),
mais si tu ne veux pas mettre ton prog dans une applet alors fais une
application fenêtrée. Et si tu veux la déployer par internet, utilise
la technologie Java Web Start (à condition que les postes sur lesquels
ça doit trourner possède la JRE SUN !).



@+
supers03 Messages postés 106 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 1 décembre 2008
12 févr. 2005 à 10:10
Dommage pour l'appletviewer ...

Pour répondre à ta remarque, en fait j'avais commencé par faire une application fenètre et elle n'était en aucun cas destinée à un déploiement par Internet... malheuresement je me suis apperçu que le java "soit disant ultra portable" (étant novice en Java je ne fais aucun jugement de valeur) ne l'était pas pour mon application : elle ne tournait que sur un tier des ordis sur lesquels je l'ai testé .... j'ai donc essayer d'en faire un applet en pensant que ça marcherai mieu (ce qui est vrai pour mon cas) ... mais celà m'impose un peu trop de contraintes donc je pense serieusement à retester en application fenètre.

Enfin voilà ça doit être les tracas de tout les newbies que se soit en Java ou dans un autre langage de prog

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
13 févr. 2005 à 17:26
Salut



Su mS n'avait pas essayé de créer sa propore JVM avec son langage J++
eh bien Java serait vraiement portbale. En fait Java est parfaitement
portable du moment qu etu possèdes une JVM standard (donc pas une
JVM MS !!!) ...



Si tous les poste possèdent une JVM SUN c'est bon, sinon il y a
d'autres moyens moins orthodoxe et plus compliqué à mettre en place ...
;-)



@+
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
17 févr. 2005 à 04:30
heu... j'imagine que vous parlez des .jar derrière l'obscure expression "application fenêtrée" ? Si c'est pas le cas (ce dont je doute) ca pourrait etre bien... mais si je peux poser une autre question (plus ou moins) en rapport avec le post initial, lorsque je fais un .jar (a l'aide d'une source qui se trouve ici meme "makejar" je crois qui marche parfaitement au deumeurant) bah a la fin, j'ai bien mon .jar avec tout dedant (.class .java meme les errorlog^^) bref... tout va bien jusque là (et le mode verbose m'affiche tout bien comme il faut) mais apres lorsqu'il s'agit d'executer le .jar c'est different... j'ai bien un process qui apparait "Javaw" (jusque la rien d'anormal) mais il se passe rien... ca me prend 13Mo de ram et c'est tout... pas de fenetre en barre des taches (alors que ca marche a merveille avec Eclipse aussi...). Neodante> j'ai bien suivi ton explication (que je connaissais deja en partie) mais j'ai vraiment aucune solution alors peut etre toi t'aurais deja vu ca ? J'ai egalement essayé de passer par une applet mais bon, je savais ce qui me guettais (car je connaissait une partie de ce que tu decrit deja)... pour signer les applets (pour les import de java.io.* entre autre) c'est vraiment la merde, j'ai trouver que de la doc redigée en n'importe quoi (quand on dit que les informaticiens DOIVENT parler anglais !!) ou la doc de sun qui une fois n'est pas coutume est bien obscure a ce sujet...

Parvenir de l'une des deux manieres sus-citées provoquerais une emotion intense car je pourrais (enfin) faire tourner mes codes sans maman Eclipse ou papa Explorer au dessus...

Merci si vous avez les uns ou les autres quelques lumieres a partager avec moi... meme s'il ne s'agit que de tuyaux (par exemple, evidemment le System.out.println grand ami du developpeur debuggeur ne fonctionne plus sans papa ou maman)
'BriBus
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
17 févr. 2005 à 10:52
Salut



Les '
13Mo de ram' comme
tu dis est simplement AWT/Swing qui se lance !!! Eh oui même si tu
lances un MessageBox c'est tout ça qui arrive en mémoire !!!


Pourquoi cela ne
marche pas entre Eclipse et le jar, je ne sais pas trop ... est-ce que
tu as essayé de le lancer avec un java simple sans le mettre dans le
JAR ???

AS-tu bien utilisé le java -jar pour lancer ton jar ??? Donc je ne sais pas trop ce qui peut se passer cela ne m'ai encore jamais arrivé ...





Pour signer une applet rien de bien compliqué si vous suivez le tutorial de SUN :

http://java.sun.com/developer/technicalArticles/Security/Signed/

La première fois c'est toujours un peu pénible mais une fois qu'on sait
le faire ... plus de problèmes !!! Surement que je ferais un tutorial
video sur ce sujet parce qu'il y a beaucoup de personnes qui ne
comprennent pas bien le principe et la manipulation !!!



@+
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
17 févr. 2005 à 20:23
Tout d'aord, merci pour la signature de l'applet, je m'y attarderais lorsque j'aurais decouvert comment faire fonctionner ce satané .jar

Au sujet du swing et awt je m'en doutais... mais y n'empeche qu'ils sont bien la ! il y a donc bien quelqu'un qui les a appellé... le fameux .jar je me doute mais apres ca... rien... j'ai procédé au test de lancer java -jar et là... magic... j'ai enfin un message d'erreur qui apparait... et j'ai peur de ne trop bien comprendre ce qu'il signifie mais je n'en suis pas sur...
il me dit ca:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/GainContr
ol
at MediaUtil.setGainVolume(MediaUtil.java:422)
at InterfaceLecteur.(InterfaceLecteur.java:118)
at Modulator.<clinit>(Modulator.java:19)

Cela pourrait-il signifier que je ne peux pas faire de .jar executable en utilisant des import qui ne sont pas "de base" dans java comme swing, awt and co ? (en l'occurence ici javax.media.GainVolume)

'BriBus
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
17 févr. 2005 à 20:24
Ps: javax.media.GainVolume se trouve dans la JMF
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
20 févr. 2005 à 18:05
Salut



Bien que si tu peux faire des import depuis n'importe quelle packages, mais as-tu mis ces packages dans ton classpath ???



Voici la syntaxe :

java -classpath c:\tutu\toto.jar -jar titi.jar



@+
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
23 févr. 2005 à 00:02
je me disait bien que c'etait une heretie de ne pas pouvoir faire de tels import... merci neodante, je vais essayer ca... il est a noter que pour d'obscures raisons, les blocs "try / catch" semblent fonctionner differament de l'environnement Eclipse. En effet, je me suis appercu que dans mon prog je faisait un "catch(NullPointerException e)" dont le bloc catch etait vide (JUSTEMENT pour ne pas interrompre l'execution du code) et bien le .jar passe bien dans ce catch mais s'interromp juste apres...
Pour l'heure, je n'ai pas fait les ajouts dont tu parles dans le classpath (ca aurait pu se faire tout seul avec eclipse...). Je vais voir ca de suite...

...Merci encore pour l'info ;)

'Bus...
cs_Anne Onyme Messages postés 19 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 22 juin 2005
25 févr. 2005 à 17:06
Salut,
Neodante> dans "java -classpath c:\tutu\toto.jar -jar titi.jar" peux tu dire a quoi correspondent les "titi", "tutu", et "toto" ? lequel est le projet en cours, et il semble qu'il y ai 2 .jar ?? (j'suis perdue)

Moi j'utilise ou Eclipse ou NetBean... il y a pas moyen de leur faire mettre les package automatiquement ?

Merci d'avance...
Anne
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
27 févr. 2005 à 21:13
Salut



Je ne connais pas cette foncitonnélité alors ... mais si tu la trouve je serais très intéressé !!!



Explication de
java -classpath c:\tutu\toto.jar -jar titi.jar
:

-titi.jar est le jar que tu as créés et que tu veux excéuter

-tutu est un répertoire quelconque

-toto est un JAR dont tu as besoin pour pouvoir exécuter ton programme ...



Voilà j'espère que c'est clair ! ;-)



@+
Rejoignez-nous