Voilà, depuis quelques jours, j'essaie de réaliser une application sous la
forme d'un applet java. J'utilise la machine java sun 1.5.0.
Je précise que je débute dans ce domaine. Et voilà que je tombe sur les
problèmes suivants :
1.
Mon applet doit communiquer avec son serveur. Ca fonctionne bien, mais la
connexion du socket est lente (~4.5 sec, avec lecture de l'horloge système
avant et après)
J'ai fouillé un moment, et j'ai la certitude que c'est la ligne suivante:
mySocket.connect(HostAddress, TimeOut);
mySocket est de la classe java.net.Socket
En mettant ça dans une application Java et non plus un applet, c'est
instantané...
Est-ce normal? Comment faire pour que cela s'exécute dans un temps "normal"
?
2.
L'applet communique donc avec son serveur. Je souhaiterais si possible faire
en sorte qu'un événement se déclenche lorsque des données sont reçues sur le
socket.
De la même manière qu'une fonction est automatiquement appelée lors de
l'appui sur le bouton correspondant.
Comment faire? merci de m'expliquer doucement les choses ;-)
3.
Si j'essaie de faire fonctionner mon applet dans Internet Explorer avec la
machine virtuelle Microsoft, j'ai juste un carré gris, et le message:
"class MyApplet not found" dans la barre d'état, et quelque chose de plus
long (mais pas plus parlant...) dans la console:
"
Error loading class: MyApplet
java.lang.NoClassDefFoundError
java.lang.ClassNotFoundException: MyApplet
at com/ms/vm/loader/URLClassLoader.loadClass
at com/ms/vm/loader/URLClassLoader.loadClass
at com/ms/applet/AppletPanel.securedClassLoad
at com/ms/applet/AppletPanel.processSentEvent
at com/ms/applet/AppletPanel.processSentEvent
at com/ms/applet/AppletPanel.run
at java/lang/Thread.run
"
Le code que j'ai inséré dans mon fichier HTML est le suivant:
"
<APPLET
ARCHIVE="TestJava.jar"
CODE="MyApplet.class"
ALIGN="center"
WIDTH="400" HEIGHT="300"
>
Message s'affichant si l'applet n'est pas supportée par le navigateur
</APPLET>
"
Qu'ai-je donc oublié?
4.
Est-il possible d'autoriser mon applet à manipuler des fichiers sur le PC
client?
Si possible sans devoir modifier la configuration de la machine,
c'est-à-dire sans modifier le fichier java.policy.
Voilà, ça fait beaucoup de questions, mais si quelqu'un peut me débloquer...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
BJB
Bonjour,
1. Personne n'a jamis dit que l'initialisation d'un socket TCP est rapide ;-) mais une fois initialisé, l'échange de donnée est plus efficace et surtout 100% fiabilisé par le protocole TCP. Si tu as besoin de quelque choise de plus rapide à l'initialisation, utilise UDP.
2. Oui, que tu utilises un datagrame (packet UDP) ou de l'envoie de donnée dans ton flux TCP dans les deux cas tu peux récuper tes données via un "stimulis" Exemple pour UDP http://www.cs.ucl.ac.uk/staff/S.Bhatti/teaching/z02/java-udp.html Exemple pour TCP http://www.cs.umd.edu/~shankar/417-F01/Slides/chapter2b-aus/sld017.htm
3. Oublit la VM de MS elle date vraiment trop. Elle date même d'une époque où MS ne jurait plus que par Java avant de s'appercevoir qu'ils étaient sur le point de se tirer une balle dans le pied en promouvant une technologie étant hors de leur controle. Depuis tout est rentré "dans l'ordre" ;-)
4. Oui tu peux, il faut alors certifier ton applet à l'aide d'un certificat. Outre le fait que celà demande un peu de pratique, il faut se demander si tu as vraiment besoin d'un tel accés. Car si c'est pour stocker des données il existe d'autres solutions ;-)
A+ JB
Fonzarelli wrote:
Bonjour,
Voilà, depuis quelques jours, j'essaie de réaliser une application sous la forme d'un applet java. J'utilise la machine java sun 1.5.0. Je précise que je débute dans ce domaine. Et voilà que je tombe sur les problèmes suivants :
1. Mon applet doit communiquer avec son serveur. Ca fonctionne bien, mais la connexion du socket est lente (~4.5 sec, avec lecture de l'horloge système avant et après) J'ai fouillé un moment, et j'ai la certitude que c'est la ligne suivante:
mySocket.connect(HostAddress, TimeOut);
mySocket est de la classe java.net.Socket
En mettant ça dans une application Java et non plus un applet, c'est instantané... Est-ce normal? Comment faire pour que cela s'exécute dans un temps "normal" ?
2. L'applet communique donc avec son serveur. Je souhaiterais si possible faire en sorte qu'un événement se déclenche lorsque des données sont reçues sur le socket. De la même manière qu'une fonction est automatiquement appelée lors de l'appui sur le bouton correspondant. Comment faire? merci de m'expliquer doucement les choses ;-)
3. Si j'essaie de faire fonctionner mon applet dans Internet Explorer avec la machine virtuelle Microsoft, j'ai juste un carré gris, et le message: "class MyApplet not found" dans la barre d'état, et quelque chose de plus long (mais pas plus parlant...) dans la console:
" Error loading class: MyApplet java.lang.NoClassDefFoundError java.lang.ClassNotFoundException: MyApplet at com/ms/vm/loader/URLClassLoader.loadClass at com/ms/vm/loader/URLClassLoader.loadClass at com/ms/applet/AppletPanel.securedClassLoad at com/ms/applet/AppletPanel.processSentEvent at com/ms/applet/AppletPanel.processSentEvent at com/ms/applet/AppletPanel.run at java/lang/Thread.run "
Le code que j'ai inséré dans mon fichier HTML est le suivant: " <APPLET ARCHIVE="TestJava.jar" CODE="MyApplet.class" ALIGN="center" WIDTH="400" HEIGHT="300"
Message s'affichant si l'applet n'est pas supportée par le navigateur </APPLET> "
Qu'ai-je donc oublié?
4. Est-il possible d'autoriser mon applet à manipuler des fichiers sur le PC client? Si possible sans devoir modifier la configuration de la machine, c'est-à-dire sans modifier le fichier java.policy.
Voilà, ça fait beaucoup de questions, mais si quelqu'un peut me débloquer...
Merci d'avance !
Bonjour,
1. Personne n'a jamis dit que l'initialisation d'un socket TCP est
rapide ;-) mais une fois initialisé, l'échange de donnée est plus
efficace et surtout 100% fiabilisé par le protocole TCP. Si tu as besoin
de quelque choise de plus rapide à l'initialisation, utilise UDP.
2. Oui, que tu utilises un datagrame (packet UDP) ou de l'envoie de
donnée dans ton flux TCP dans les deux cas tu peux récuper tes données
via un "stimulis"
Exemple pour UDP
http://www.cs.ucl.ac.uk/staff/S.Bhatti/teaching/z02/java-udp.html
Exemple pour TCP
http://www.cs.umd.edu/~shankar/417-F01/Slides/chapter2b-aus/sld017.htm
3. Oublit la VM de MS elle date vraiment trop. Elle date même d'une
époque où MS ne jurait plus que par Java avant de s'appercevoir qu'ils
étaient sur le point de se tirer une balle dans le pied en promouvant
une technologie étant hors de leur controle. Depuis tout est rentré
"dans l'ordre" ;-)
4. Oui tu peux, il faut alors certifier ton applet à l'aide d'un
certificat. Outre le fait que celà demande un peu de pratique, il faut
se demander si tu as vraiment besoin d'un tel accés. Car si c'est pour
stocker des données il existe d'autres solutions ;-)
A+
JB
Fonzarelli wrote:
Bonjour,
Voilà, depuis quelques jours, j'essaie de réaliser une application sous la
forme d'un applet java. J'utilise la machine java sun 1.5.0.
Je précise que je débute dans ce domaine. Et voilà que je tombe sur les
problèmes suivants :
1.
Mon applet doit communiquer avec son serveur. Ca fonctionne bien, mais la
connexion du socket est lente (~4.5 sec, avec lecture de l'horloge système
avant et après)
J'ai fouillé un moment, et j'ai la certitude que c'est la ligne suivante:
mySocket.connect(HostAddress, TimeOut);
mySocket est de la classe java.net.Socket
En mettant ça dans une application Java et non plus un applet, c'est
instantané...
Est-ce normal? Comment faire pour que cela s'exécute dans un temps "normal"
?
2.
L'applet communique donc avec son serveur. Je souhaiterais si possible faire
en sorte qu'un événement se déclenche lorsque des données sont reçues sur le
socket.
De la même manière qu'une fonction est automatiquement appelée lors de
l'appui sur le bouton correspondant.
Comment faire? merci de m'expliquer doucement les choses ;-)
3.
Si j'essaie de faire fonctionner mon applet dans Internet Explorer avec la
machine virtuelle Microsoft, j'ai juste un carré gris, et le message:
"class MyApplet not found" dans la barre d'état, et quelque chose de plus
long (mais pas plus parlant...) dans la console:
"
Error loading class: MyApplet
java.lang.NoClassDefFoundError
java.lang.ClassNotFoundException: MyApplet
at com/ms/vm/loader/URLClassLoader.loadClass
at com/ms/vm/loader/URLClassLoader.loadClass
at com/ms/applet/AppletPanel.securedClassLoad
at com/ms/applet/AppletPanel.processSentEvent
at com/ms/applet/AppletPanel.processSentEvent
at com/ms/applet/AppletPanel.run
at java/lang/Thread.run
"
Le code que j'ai inséré dans mon fichier HTML est le suivant:
"
<APPLET
ARCHIVE="TestJava.jar"
CODE="MyApplet.class"
ALIGN="center"
WIDTH="400" HEIGHT="300"
Message s'affichant si l'applet n'est pas supportée par le navigateur
</APPLET>
"
Qu'ai-je donc oublié?
4.
Est-il possible d'autoriser mon applet à manipuler des fichiers sur le PC
client?
Si possible sans devoir modifier la configuration de la machine,
c'est-à-dire sans modifier le fichier java.policy.
Voilà, ça fait beaucoup de questions, mais si quelqu'un peut me débloquer...
1. Personne n'a jamis dit que l'initialisation d'un socket TCP est rapide ;-) mais une fois initialisé, l'échange de donnée est plus efficace et surtout 100% fiabilisé par le protocole TCP. Si tu as besoin de quelque choise de plus rapide à l'initialisation, utilise UDP.
2. Oui, que tu utilises un datagrame (packet UDP) ou de l'envoie de donnée dans ton flux TCP dans les deux cas tu peux récuper tes données via un "stimulis" Exemple pour UDP http://www.cs.ucl.ac.uk/staff/S.Bhatti/teaching/z02/java-udp.html Exemple pour TCP http://www.cs.umd.edu/~shankar/417-F01/Slides/chapter2b-aus/sld017.htm
3. Oublit la VM de MS elle date vraiment trop. Elle date même d'une époque où MS ne jurait plus que par Java avant de s'appercevoir qu'ils étaient sur le point de se tirer une balle dans le pied en promouvant une technologie étant hors de leur controle. Depuis tout est rentré "dans l'ordre" ;-)
4. Oui tu peux, il faut alors certifier ton applet à l'aide d'un certificat. Outre le fait que celà demande un peu de pratique, il faut se demander si tu as vraiment besoin d'un tel accés. Car si c'est pour stocker des données il existe d'autres solutions ;-)
A+ JB
Fonzarelli wrote:
Bonjour,
Voilà, depuis quelques jours, j'essaie de réaliser une application sous la forme d'un applet java. J'utilise la machine java sun 1.5.0. Je précise que je débute dans ce domaine. Et voilà que je tombe sur les problèmes suivants :
1. Mon applet doit communiquer avec son serveur. Ca fonctionne bien, mais la connexion du socket est lente (~4.5 sec, avec lecture de l'horloge système avant et après) J'ai fouillé un moment, et j'ai la certitude que c'est la ligne suivante:
mySocket.connect(HostAddress, TimeOut);
mySocket est de la classe java.net.Socket
En mettant ça dans une application Java et non plus un applet, c'est instantané... Est-ce normal? Comment faire pour que cela s'exécute dans un temps "normal" ?
2. L'applet communique donc avec son serveur. Je souhaiterais si possible faire en sorte qu'un événement se déclenche lorsque des données sont reçues sur le socket. De la même manière qu'une fonction est automatiquement appelée lors de l'appui sur le bouton correspondant. Comment faire? merci de m'expliquer doucement les choses ;-)
3. Si j'essaie de faire fonctionner mon applet dans Internet Explorer avec la machine virtuelle Microsoft, j'ai juste un carré gris, et le message: "class MyApplet not found" dans la barre d'état, et quelque chose de plus long (mais pas plus parlant...) dans la console:
" Error loading class: MyApplet java.lang.NoClassDefFoundError java.lang.ClassNotFoundException: MyApplet at com/ms/vm/loader/URLClassLoader.loadClass at com/ms/vm/loader/URLClassLoader.loadClass at com/ms/applet/AppletPanel.securedClassLoad at com/ms/applet/AppletPanel.processSentEvent at com/ms/applet/AppletPanel.processSentEvent at com/ms/applet/AppletPanel.run at java/lang/Thread.run "
Le code que j'ai inséré dans mon fichier HTML est le suivant: " <APPLET ARCHIVE="TestJava.jar" CODE="MyApplet.class" ALIGN="center" WIDTH="400" HEIGHT="300"
Message s'affichant si l'applet n'est pas supportée par le navigateur </APPLET> "
Qu'ai-je donc oublié?
4. Est-il possible d'autoriser mon applet à manipuler des fichiers sur le PC client? Si possible sans devoir modifier la configuration de la machine, c'est-à-dire sans modifier le fichier java.policy.
Voilà, ça fait beaucoup de questions, mais si quelqu'un peut me débloquer...
Merci d'avance !
Francis JUGE-BOIRARD
Exemple pour UDP http://www.cs.ucl.ac.uk/staff/S.Bhatti/teaching/z02/java-udp.html Exemple pour TCP http://www.cs.umd.edu/~shankar/417-F01/Slides/chapter2b-aus/sld017.htm Source protéger par mot de passe c'est dommage....
Exemple pour UDP
http://www.cs.ucl.ac.uk/staff/S.Bhatti/teaching/z02/java-udp.html
Exemple pour TCP
http://www.cs.umd.edu/~shankar/417-F01/Slides/chapter2b-aus/sld017.htm
Source protéger par mot de passe c'est dommage....
Exemple pour UDP http://www.cs.ucl.ac.uk/staff/S.Bhatti/teaching/z02/java-udp.html Exemple pour TCP http://www.cs.umd.edu/~shankar/417-F01/Slides/chapter2b-aus/sld017.htm Source protéger par mot de passe c'est dommage....