Sun.jdbc.odbc.JdbcOdbcDriver => ClassNotFoundException [Résolu]

alonsyl 348 Messages postés mardi 6 avril 2004Date d'inscription 6 novembre 2008 Dernière intervention - 8 mars 2006 à 11:40 - Dernière réponse :  zahra93
- 20 mars 2013 à 21:12
bonjour,

afin d'interroger une BDD access dans une de mes applets, j'utilise la commande "Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();". tout fonctionne normalement dans eclipse (les drivers sont trouve et ma BDD est interrogee) mais ca plante lorsque je mets mon "*.class" a la racine de ma page web et que je tente charger mon applet (j'ai egalement essaye avec une archive jar).

j'ai verifie et le prog plante sur Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();.
le msg d'erreur est : ClassNotFoundException

que ce passe passe t'il ? pourquoi eclipse ne joint pas les drivers odbc a mon jar ? comment corriger ce probleme ?

(j'ai de deja joints java.sql.* a mon jar en le dezipant et apres avoir transforme tous les *.java en *.class mais ca n'a rien resolu ...)

merci a vous,

alonsyl
Afficher la suite 

Votre réponse

14 réponses

Meilleure réponse
Twinuts 5280 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 3 octobre 2018 Dernière intervention - 10 mars 2006 à 16:12
3
Merci
Salut,



ralala fais un effort :)



apres un copier collé de

java.lang.RuntimePermission accessClassInPackage.sun.jdbc.odbc

dans la zone de recherche de google je suis tombé sur cette page java.lang.RuntimePermission+accessClassInPackage.sun.jdbc.odbc&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official ici

et le premier lien de cette courte recherche me dirige sur le site de sun ici ensuite feignasse comme je suis je fais Ctrl+f dans mon firefox et dans la zone de recherche je colle

java.lang.RuntimePermission accessClassInPackage.sun.jdbc.odbc

et la je tombe sur ce petit paragraphe




Reading a Stack Trace:
If the DbaOdbAppl.java applet
is launched without a policy file, the following stack trace
is generated when the end user clicks the
Click Me

button.



java.security.AccessControlException: access denied
(java.lang.RuntimePermission
accessClassInPackage.sun.jdbc.odbc )




The first line in the above stack trace tells you access is denied.
This means this stack trace was generated because the applet tried to
access a system resource without the proper permission. The second
line means you need a
RuntimePermission
that gives
the applet access to the
sun.jdbc.odbc
package.
This package provides the JDBC-ODBC bridge functionality to the
Java1 virtual machine (VM).




You can use Policy tool to create the policy file you need,
or you can create it with an ASCII editor. Here is the policy
file with the permission indicated by the stack trace:



grant {
permission java.lang.RuntimePermission
"accessClassInPackage.sun.jdbc.odbc";
};




Run the applet again, this time with a policy file named
DbaOdbPol
that has the above permission in it:



appletviewer -J-Djava.security.policy =DbaOdbPol
DbaOdb.html




You get a stack trace again, but this time it is a different
error condition.



java.security.AccessControlException:
access denied (java.lang.RuntimePermission
file.encoding read)




The stack trace means the applet needs read permission to the encoded
(binary) file.
Here is the
DbaOdbPol
policy file with the permission
indicated by the stack trace added to it:



<!-- BEGIN VCD7 CODE SAMPLE COMPONENT -->
grant {
permission java.lang.RuntimePermission
"accessClassInPackage.sun.jdbc.odbc";
permission java.util.PropertyPermission
"file.encoding", "read";
};





<!-- END VCD7 CODE SAMPLE COMPONENT -->

Run the applet again. If you use the above policy file
with the Runtime and Property permissions indicated, it
works just fine.



appletviewer -J-Djava.security.policy=DbaOdbPol
DbaOdb.html








Vive google c'est un ami très fidèle







WORA

Merci Twinuts 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de Twinuts
Twinuts 5280 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 3 octobre 2018 Dernière intervention - 8 mars 2006 à 13:31
0
Merci
Salut,



eclipse rajoute ton jar au classpath pour run ton applet (ou application) en aucun cas il va te les ajouter dans ton jar....


WORA
Commenter la réponse de Twinuts
alonsyl 348 Messages postés mardi 6 avril 2004Date d'inscription 6 novembre 2008 Dernière intervention - 8 mars 2006 à 14:07
0
Merci
ok ! alors sais tu quel est le nom du fichier qui contient "sun.jdbc.odbc.JdbcOdbcDriver" et que je dois joindre a mon jar ?

d'autre part, je pensais qu'il etait possible dans l'assistant conception de jar d'eclipse d'ajouter les librairies qu'eclipse ne met pas par defaut. est-ce que je me trompe ?

merci a toi,

alonsyl
Commenter la réponse de alonsyl
Twinuts 5280 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 3 octobre 2018 Dernière intervention - 8 mars 2006 à 15:52
0
Merci
je ne sais pas vraiment tu as essayé le package
sun/jdbc/odbc/JdbcOdbcDriver? citué dans rt.jar du jre rt.jar c'est le
jar contenant toutes les classes de la machine virtuelle qui est natif
au jre...



sinon pour eclipse je ne sais pas je n'tulise pas l'outils graphique
pour mes jar j'utilise ant qui me permet plus de possibilitée


WORA
Commenter la réponse de Twinuts
alonsyl 348 Messages postés mardi 6 avril 2004Date d'inscription 6 novembre 2008 Dernière intervention - 8 mars 2006 à 16:47
0
Merci
1) j'ai ajoute C:\Program Files\jre1.5.0_04\lib (repertoire de rt.jar) au classpath mais tjrs rien

2) j'ai essaye d'ajouter rt.jar a l'interieur de monApplet.jar (a la racine) sans plus de succes
(pourtant ca avait marche l'autre jour qd tu m'avais dit de le faire pour mysql-connector : http://www.javafr.com/infomsg/JOINDRE-DRIVERS-MYSQL-JAR-1_680633.aspx)

que dois-je faire ?

toujours est-il que j'en ai un peu marre de ces pbl d'adjonction de bibliotheques a la conception du jar !!!

merci a toi,

alonsyl
Commenter la réponse de alonsyl
Twinuts 5280 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 3 octobre 2018 Dernière intervention - 8 mars 2006 à 18:05
0
Merci
Enfaite rtp.jar c'est le seul jar qui est particulier :) normalement tu
n'est pas censé de le mettre dans le classpath mais tu peux qd meme le
faire comme ceci



je ne connais pas la syntax crochiotte donc adapte



export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$CLASSPATH



il est impératif de commencer par un '.' suivit du séparateur sous linux ':'





tu es un grand malade ne rajoute pas rt.jar dans ton jar looooool c'est franchement pas util.

WORA
Commenter la réponse de Twinuts
Twinuts 5280 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 3 octobre 2018 Dernière intervention - 8 mars 2006 à 18:10
0
Merci
Peux-tu essayer ca stp (c'est ce que je fais dans une de mes
appli


Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Properties props = new Properties();

props.setProperty("user", user);

props.setProperty("password", pass);

props.setProperty("autoReconnect", "true");

connection = DriverManager.getConnection(dbURL, props);





à la place de
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();.





et me dire si tu plante encore





et aussi dans une console faire java -version et me donner la version :)


WORA
Commenter la réponse de Twinuts
alonsyl 348 Messages postés mardi 6 avril 2004Date d'inscription 6 novembre 2008 Dernière intervention - 9 mars 2006 à 15:44
0
Merci
rien a faire, j'ai beau modifier le classpath et tordre mon jar dans tous les sens, je n'arrive pas a faire en sorte que ca fonctionne hors d'eclipse ...

j'ai tout de meme essaye ton bout de code mais (comme je m'y attendais), ca plante sur "Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");" car il ne trouve pas les drivers "sun.jdbc.odbc.JdbcOdbcDriver".

toujours est t'il que je ne comprends pas pourquoi il arrive a trouver toutes les classes et les packages de rt.jar sauf "mon sun.jdbc.odbc.*".

je commence a desesperer ...

merci a toi

alonsyl
Commenter la réponse de alonsyl
Twinuts 5280 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 3 octobre 2018 Dernière intervention - 9 mars 2006 à 18:59
0
Merci
Salut,



heu question a la con tu as creer la base sur ton poste client crochiotte? je parle dans les service ODBC, de win



sinon tiens matte ce lien

http://home.tiscali.nl/~bmc88/java/sbook/015.html



sinon j'ai choppé ca sur un site (je ne sais plus ou dsl)




Sécurité des applets: l'accès à une base ne peut se faire que si la base est
sur la machine d'où provient l'applet; en fait le pilote JDBC ne peut
se connecter qu'aux bases situées sur la machine où il est chargé;
le pilote doit aussi vérifier que l'applet qui le sollicite est autorisée à
le faire. Ces vérifications ne concernent pas l'utilisation de la base. Une
applet ne peut pas accéder à des données locales.




WORA
Commenter la réponse de Twinuts
alonsyl 348 Messages postés mardi 6 avril 2004Date d'inscription 6 novembre 2008 Dernière intervention - 9 mars 2006 à 19:40
0
Merci
je suis tres nul mais j'ai quand meme penser a creer ma BDD ;-)

j'arrive meme a my connecter et faire toutes les operations dont j'ai besoin (quand je suis dans eclipse !!!). en fait, j'ai installe eclipse sur mon server => si je m'y connecte depuis eclipse, je devrait egalement la trouver sans rien modifier depuis ma page web ...

ceci dit, je vais regarder avec attention les infos dont tu m'as fait part ...

merci a toi,

alonsyl
Commenter la réponse de alonsyl
alonsyl 348 Messages postés mardi 6 avril 2004Date d'inscription 6 novembre 2008 Dernière intervention - 10 mars 2006 à 14:36
0
Merci
j'ai du nouveau !!!
apres avoir tordu mon applet dans tous les sens, j'ai controler mon msg d'erreur et je n'ai plus "ClassNotFoundException" mais "java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.jdbc.odbc)".

saurait-tu comment faire sauter cette erreur ?

merci a toi,

alonsyl
Commenter la réponse de alonsyl
skul2006 1 Messages postés lundi 25 décembre 2006Date d'inscription 25 juin 2007 Dernière intervention - 25 juin 2007 à 15:08
0
Merci
Bonjour,

J'aimerais savoir comment pourrait-on connecter eclipse avec ODBC. J'ai telecharge QuantumDB mais ca na pas marche. N y'aurait-il pas par hasard de pilote a installer pout que ca puisse fonctionner ?

merci d'avance A+
Commenter la réponse de skul2006
cs_borcane 1 Messages postés mercredi 11 avril 2007Date d'inscription 27 décembre 2008 Dernière intervention - 27 déc. 2008 à 20:38
0
Merci
pour les applet il ne faut pas oublier de les signer sinon ça ne marchara pas
Commenter la réponse de cs_borcane
0
Merci
Moi le fichier rt.jar se trouve dans le dossier programme/java/jre5 est-ce que ca poserait un problème?

Courage mon peuple
Commenter la réponse de zahra93

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.