On peut voir le code de ta page JSP ?
On peut voir le code de ta page JSP ?
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Tu peux poster
l'erreur complète que tu obtiens (copie colle l'intégralité de la console java applet)
l'endroit exact où tu as déposé chaque fichier (le jar, le jsp, etc)
l'url qui apparait dans le browser lors de l'erreur
Je viens d'essayer d'utiliser le script de déploiement de Java:
Mais j'obtiens encore et toujours la même erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <script src="https://www.java.com/js/deployJava.js" type="text/javascript"></script> <script type="text/javascript"> var attributes = {archive: 'AppWindow.jar', codebase: '.', code:'application.AppWindow.class', width:'800', height:'600'}; var parameters = {param:'param'}; deployJava.runApplet(attributes, parameters, '1.7'); </script>
Code de la JSP:
Pour l'erreur: A la place de mon applet j'obtiens un cadre blanc avec écris "Erreur : cliquez pour obtenir plus d'informations", lorsque je clique il ouvre une boite de dialogue avec écris "Erreur d'application", "ClassNotFoundException" et "application.AppWindow.class". Lorsque je clique sur le bouton Détails de cette fenêtre il m'affiche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 <%@ page pageEncoding="UTF-8" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%-- Permet d'utiliser les balise 'c:' --%> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <link rel="icon" type="image/png" href="<%=getServletContext().getContextPath()%>/img/logo0.png" /> <title>Titre</title> <style type="text/css"> <%@include file="/CSS/welcome.css" %> </style> </head> <body> <form method="post" action="welcome"> <input type="hidden" id="button" name="button" value="none"> <img src="<%=getServletContext().getContextPath()%>/img/logo1.png" alt="Logo" /> <span class="welcome">Bienvenue </span> <span class="you">${user}</span> <span class="user"> <%-- Vérifie la valeur de "root" et affiche le lien si la valeur est true --%> <c:if test="${root}"> <input type="submit" value="Ajouter un utilisateur" onClick="document.getElementById('button').value ='adduser';"/> </c:if> <input type="submit" value="Mon compte" onClick="document.getElementById('button').value ='account';"/> <input type="submit" value="Deconnexion" onClick="document.getElementById('button').value ='disconnect';"/> </span> <br /> <br /> <script src="https://www.java.com/js/deployJava.js" type="text/javascript"></script> <script type="text/javascript"> var attributes = {archive: 'AppWindow.jar', codebase: '.', code:'application.AppWindow.class', width:'800', height:'600'}; var parameters = {param:'param'}; deployJava.runApplet(attributes, parameters, '1.7'); </script> <%--<jsp:plugin type="applet" code="application.AppWindow.class" codebase="." archive="AppWindow.jar"> <jsp:params> <jsp:param name="param" value="param" /> </jsp:params> </jsp:plugin>--%> <br /> <br /> <input type="submit" value="Télécharger" onClick="document.getElementById('button').value ='download';"/> </form> </body> </html>
Voici mon arbre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Plug-in Java 10.45.2.18 Utilisation de la version JRE 1.7.0_45-b18 Java HotSpot(TM) Client VM Répertoire d'origine de l'utilisateur = C:\[mon adresse] ---------------------------------------------------- c: effacer la fenêtre de la console f: finaliser les objets de la file d'attente de finalisation g: nettoyer la mémoire h: afficher ce message d'aide l: vider la liste des chargeurs de classes m: imprimer le relevé d'utilisation de la mémoire o: déclencher la journalisation q: masquer la console r: recharger la configuration des règles s: vider les propriétés système et de déploiement t: vider la liste des threads v: vider la pile des threads x: effacer le cache de chargeurs de classes 0-5: fixer le niveau de trace à <n> ---------------------------------------------------- CacheEntry[http://pki-crl.itn.ftgroup/crl/igcgfti_ca1-2.crl]: updateAvailable=true,lastModified=Fri Aug 12 11:21:01 CEST 2016,length=55193
Sachant que AppWindow.jar et ma jsp sont dans app/WebContent/JSP
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 app |---src | |---application | |---interfaces | |---Servlets |---WebContent |---CSS |---JSP |---fonts |---img |---META-INF |---WEB-INF |---lib
J'ai potentiellement trouver la solution à mon problème, malheureusement, je ne pourrais pas la tester avant demain, je vous tiendrais au courant
Bon et bien malgré tout nos test nous n'avons pas réussis à corriger l'erreur, cependant cette fois nous avons eu un véritable message d'erreur (différent que l'on soit sur serveur ou en local):
SUR SERVEUR
charger : classe application.AppWindow.class introuvable.
java.lang.ClassNotFoundException: application.AppWindow.class
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.net.http://www.protocol.https.HttpsClien...onnect(Unknown Source)
at sun.net.http://www.protocol.https.AbstractDe...onnect(Unknown Source)
at sun.net.http://www.protocol.http.HttpURLConn...Stream(Unknown Source)
at java.net.HttpURLConnection.getResponseCode(Unknown Source)
at sun.net.http://www.protocol.https.HttpsURLCo...seCode(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 7 more
Exception : java.lang.ClassNotFoundException: application.AppWindow.class
LOCAL
charger : classe application.AppWindow.class introuvable.
java.lang.ClassNotFoundException: application.AppWindow.class
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed:http://localhost:8080/app/applicatio...ow/class.class
at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 7 more
Exception : java.lang.ClassNotFoundException: application.AppWindow.class
EDIT: en réalité codebase ne regardais pas le dossier où se situer la JSP mais WebContent. Du coup notre page Web charge enfin l'application, cependant on obtiens un RuntimeException "java.lang.reflect.InvocationTargetException"
message d'erreur:
"Communication impossible avec jdbc:mysql://localhost/bdd"
RE-EDIT: en réalité j'utilise une classe SQLConnection partout, et sur le site les connections sont établis niquel alors que dans l'application, il n'arrive pas à faire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part Class.forName("com.mysql.jdbc.Driver");
Est-ce que le jar du driver JDBC fait partie de la distribution de ton applet (je pense que non) ?
N'oublie pas que l'applet s'exécute sur le poste client et donc n'a pas accès aux ressources du serveur (classpath en particulier)
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Comment peut on spécifier à notre Applet son BuildPath en ajoutant les .jar dans App.jar lors de l'export Eclipse?
On peut effectivement créer un jar contenant les dépendances... ou utiliser une liste de jar dans l'attribut archive.
J'ai toujours fait un jar, mais il y avait peu de dépendances...
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Du coup, comment, sous Eclipse, peut-on builder l'Applet avec les dépendances?
EDIT:
On as essayé avec cette ligne:
Et cette arbre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <jsp:plugin type="applet" code="application.AppWindow.class" codebase="./jarfiles" archive="App.jar, ..."> <jsp:params> <jsp:param name="param" value="param" /> </jsp:params> </jsp:plugin>
Et tout les .jar dans jarfiles, mais on as encore l'erreur de driver
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 app |---src | |---application | |---interfaces | |---Servlets |---WebContent |---jarfiles |---CSS |---JSP |---fonts |---img |---META-INF |---WEB-INF |---lib
Il faut passer par Export -> Runnable JAR File
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Problème au niveau du SSL entre le client java et le serveur https. Soit le certificats n'est pas correct sur le serveur, soit le serveur et le client ne trouvent pas d'accord sur les ciphersuite ou la version du protocole ssl à utiliser. Voir avec le gestionnaire du serveur ce qui se passe.
@tchize_ Nous avions réussis à corriger ce problèmes ^^
@OButterlin On fait Export > Runnable Jar File mais Launch Configuration est vide.
C'est normal, il faut créer un petit programme avec un main, généralement, je fais ceci
Ensuite, tu fais un click-droit sur la classe -> Run As -> Run Configurations.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public class Test_dsi_jsf_recherches { public static void main(String[] args) { System.out.println("dsi-jsf-recherches-2.10"); } }
sur la ligne Java Application, click-droit -> new et tu complètes.
A partir de là, tu pourras choisir cette configuration dans l'Export Runnable JAR
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
On as ajouter dans notre applet:
et on obtiens java.lang.ExceptionInInitializeError
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public class AppWindow extends Japplet { public static void main(String [] args) { new AppWindow(); } }
EDIT:
En poussant pas mal les test on obtiens:
Et dans la console Java on ne vois s'afficher que "Not connected" puis plus rien et l'erreur java.lang.ExceptionInInitializeError
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 public SQLconnection(String url, String user, String password) { try { Class.forName( "com.mysql.jdbc.Driver" ); } catch ( ClassNotFoundException e ) { e.printStackTrace(); System.out.println("Impossible de récupérer le driver JDBC"); } try { System.out.println("Not connected"); connexion = DriverManager.getConnection(url, user, password); System.out.println("Connected"); statement = connexion.createStatement(); } catch ( SQLException e ) { e.printStackTrace(); System.out.println("Communication impossible avec " + url); } }
Il faut que l'URL de ta connexion soit effectivement accessible depuis le net pour que tu puisses établir le lien...
Ceci dit, une applet qui fait de la requête base de données, ce n'est pas vraiment l'option que j'aurais choisi.
D'un point de vue de l'architecture, il me semble préférable de laisser le serveur faire ce genre de chose, quitte à passer par un Socket ou alors via des EJB remote.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
L'URL est accessible car le site utilise la BDD pour le système de login et ça fonctionne niquel ^^'
P.S.: Je me doute bien que l'applet n'est clairement pas la meilleur options, mais c'était la plus facile pour faire de l'affichage et du traitement de données SQL simple <^^'
Je peux savoir ce que fait l'applet ?
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Elle affiche les données présentes dans une base de données après traitement
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager