J'ai un problème pour me connecter à ma base de données de type HSQLDB :
Le chargement du pilote est bon mais lors de la connexion , j'ai le déclenchement d'une exception :
Avec la ligne : 'connexion = DriverManager.getConnection("jdbc:hsqldb:file:test20090730", "sa", "");' - j'ai cette exception : SQLException (...) access denied (java.io.FilePermission test20090730.tmp write) (cf console 1)
Avec la ligne : 'connexion = DriverManager.getConnection("jdbc:hsqldb:file:C:/testdb/test2009073001", "sa", "");' - j'ai cette exception : SQLException (...) access denied (java.io.FilePermission C:\testdb\test2009073001.properties read) (cf console 2)
Avec la ligne : 'connexion = DriverManager.getConnection("jdbc:hsqldb:mem:testdb", "sa", "");'. aucun problème
Je supose que j'ai un problème de droit d'accès sur mes répertoires : Avant chaque lancement je vérifie que je n'ai pas de fichier de base de données de type HSQLDB (car il les devrai les mettre en place lors de la connexion) et que mon dossier (où devrai se trouver les futurs fichiers de base de données) ne soit pas en lecture seul.
Pouvez-vous m'aider pour le problème.
Merci d'avance
Version de programme :
- Eclipse : 3.4.2
- GWT : 1.7.0
- App Engine : 1.2.2
- HSQLDB : 1.8.0.10
- OS : XP SP3
Code source :
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 String nomDriver = "org.hsqldb.jdbcDriver"; Statement statement=null; Connection connexion=null; ResultSet resultat = null; try{ Class.forName(nomDriver).newInstance(); }catch(ClassNotFoundException cnfe){ System.out.println("La classe "+nomDriver+" n'a pas été trouvée"); cnfe.printStackTrace(); }catch(InstantiationException e){ System.out.println("catch 2"); e.printStackTrace(); }catch(IllegalAccessException e){ System.out.println("catch 3"); e.printStackTrace(); } try{ connexion = DriverManager.getConnection("jdbc:hsqldb:file:test20090730", "sa", ""); //connexion = DriverManager.getConnection("jdbc:hsqldb:file:C:/testdb/test2009073001", "sa", ""); //connexion = DriverManager.getConnection("jdbc:hsqldb:mem:testdb", "sa", ""); statement = connexion.createStatement(); statement.close(); connexion.close(); }catch(SQLException ex){ System.out.println("erreur lors de la connexion"); ex.printStackTrace(); }
Console 1 :
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
47
48
49 java.sql.SQLException: General error: java.security.AccessControlException: access denied (java.io.FilePermission test20090730.tmp write) at org.hsqldb.jdbc.Util.sqlException(Util.java:365) at org.hsqldb.jdbc.Util.sqlException(Util.java:103) at org.hsqldb.jdbc.JDBCConnection.<init>(JDBCConnection.java:3236) at org.hsqldb.jdbc.JDBCDriver.getConnection(JDBCDriver.java:285) at org.hsqldb.jdbc.JDBCDriver.connect(JDBCDriver.java:245) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at fr.xxxx.test.server.GreetingServiceImpl.greetServer(GreetingServiceImpl.java:38) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:166) at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86) at javax.servlet.http.HttpServlet.service(HttpServlet.java:713) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:124) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:54) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:313) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) at org.mortbay.jetty.Server.handle(Server.java:313) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442) Caused by: org.hsqldb.HsqlException: General error: java.security.AccessControlException: access denied (java.io.FilePermission test20090730.tmp write) at org.hsqldb.Error.error(Error.java:76) at org.hsqldb.Database.reopen(Database.java:298) at org.hsqldb.Database.open(Database.java:235) at org.hsqldb.DatabaseManager.getDatabase(DatabaseManager.java:222) at org.hsqldb.DatabaseManager.newSession(DatabaseManager.java:145) at org.hsqldb.jdbc.JDBCConnection.<init>(JDBCConnection.java:3219) ... 37 more
Consol 2 :
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
47
48
49 java.sql.SQLException: General error: java.security.AccessControlException: access denied (java.io.FilePermission C:\testdb\test2009073001.properties read) at org.hsqldb.jdbc.Util.sqlException(Util.java:365) at org.hsqldb.jdbc.Util.sqlException(Util.java:103) at org.hsqldb.jdbc.JDBCConnection.<init>(JDBCConnection.java:3236) at org.hsqldb.jdbc.JDBCDriver.getConnection(JDBCDriver.java:285) at org.hsqldb.jdbc.JDBCDriver.connect(JDBCDriver.java:245) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at fr.xxxx.test.server.GreetingServiceImpl.greetServer(GreetingServiceImpl.java:39) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:166) at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86) at javax.servlet.http.HttpServlet.service(HttpServlet.java:713) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:124) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:54) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:313) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) at org.mortbay.jetty.Server.handle(Server.java:313) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442) Caused by: org.hsqldb.HsqlException: General error: java.security.AccessControlException: access denied (java.io.FilePermission C:\testdb\test2009073001.properties read) at org.hsqldb.Error.error(Error.java:76) at org.hsqldb.Database.reopen(Database.java:298) at org.hsqldb.Database.open(Database.java:235) at org.hsqldb.DatabaseManager.getDatabase(DatabaseManager.java:222) at org.hsqldb.DatabaseManager.newSession(DatabaseManager.java:145) at org.hsqldb.jdbc.JDBCConnection.<init>(JDBCConnection.java:3219) ... 37 more
Partager