m p
2013-05-31 14:11:23 UTC
m p [https://community.jboss.org/people/mp_108] created the discussion
"java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Could not find file"
To view the discussion, visit: https://community.jboss.org/message/820693#820693
--------------------------------------------------------------
Background:
I am developing in Eclipse and using Struts 2 framework to build and deploy .war file to http://www.coderanch.com/forums/f-63/JBoss JBoss. 4.2.3GA
There is an action class that I am using to insert a user into a database table - pretty simple stuff Loading Image... http://cache-www.coderanch.com/images/smilies/3b63d1616c5dfcf29f8a7a031aaa7cad.gif
I get the following exception for executeUpdate() method.
DEBUG com.opensymphony.xwork2.DefaultActionInvocation.debug:68 - Executing action method = execute
[STDOUT] >>>>>>>>>>insert into catNav.USERS values('mm', 'pp', 88, '***@yahoo.com (mailto:'***@yahoo.com)');
[STDOUT] java.sql.SQLException (http://docs.oracle.com/javase/7/docs/api/java/sql/SQLException.html): [Microsoft][ODBC Microsoft Access Driver] Could not find file *'C:\java\jboss-4.2.3.GA\bin\catNav.mdb'*.
*I am provide the full path to the database .mdb file but the exception is referring to file in jboss folder, which is does no exist. I am struggling to find a solution to resolve this. * The path, using either \\ or / file separators is validated as an exception occurs if invalid path is defined.
The code is below; I have the same code in a standalone Java program that executes successfully (I verify row was added)Â .... *but fails when running on JBoss* :(
public String execute() throws Exception {
 Â
 //call Service class to store personBean's state in database
 final String dbName = "catNav";
 Connection con = null; // The connection to the database.
Â
 Statement stmt = null;
Â
 // The following code can throw errors, so they must be caught.
 try{
  // First, tell Java what driver to use and where to find it.
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 Â
  // Next, create a connection to your data source.
  // Specify that you are using the ODBC-JDBC Bridge.
  // And specify the data source name from ODBC.
  String database =
            "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/Users/mp/Documents/Work/JDBC/catNav.mdb;";
 Â
  con = DriverManager.getConnection(database, "", "");
  /* also tried:
  con = DriverManager.getConnection("jdbc:odbc:catNavDB");
  */
 Â
  // Create an SQL statement.
  stmt = con.createStatement();
Â
  // Execute some SQL to create a table in your database.
  // If the table already exists, an exception is thrown!
  String sqlSt = "insert into " + dbName +
    ".USERS " +
    "values('" + personBean.getFirstName() + "', " + // FIRST_NAME
    "'" + personBean.getLastName() + "', " +         // LAST_NAME
    personBean.getAge() + ", " +                     // AGE
    "'" + personBean.getEmail() + "'); " ;          // EMAIL
 Â
  // display SQL statment
  System.out.println (">>>>>>>>>>" + sqlSt );
 Â
  stmt.executeUpdate( sqlSt);Â
 Â
  }
  // Catch any exceptions that are thrown.
  etc.
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/820693#820693]
Start a new discussion in Datasource Configuration at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2077]
"java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Could not find file"
To view the discussion, visit: https://community.jboss.org/message/820693#820693
--------------------------------------------------------------
Background:
I am developing in Eclipse and using Struts 2 framework to build and deploy .war file to http://www.coderanch.com/forums/f-63/JBoss JBoss. 4.2.3GA
There is an action class that I am using to insert a user into a database table - pretty simple stuff Loading Image... http://cache-www.coderanch.com/images/smilies/3b63d1616c5dfcf29f8a7a031aaa7cad.gif
I get the following exception for executeUpdate() method.
DEBUG com.opensymphony.xwork2.DefaultActionInvocation.debug:68 - Executing action method = execute
[STDOUT] >>>>>>>>>>insert into catNav.USERS values('mm', 'pp', 88, '***@yahoo.com (mailto:'***@yahoo.com)');
[STDOUT] java.sql.SQLException (http://docs.oracle.com/javase/7/docs/api/java/sql/SQLException.html): [Microsoft][ODBC Microsoft Access Driver] Could not find file *'C:\java\jboss-4.2.3.GA\bin\catNav.mdb'*.
*I am provide the full path to the database .mdb file but the exception is referring to file in jboss folder, which is does no exist. I am struggling to find a solution to resolve this. * The path, using either \\ or / file separators is validated as an exception occurs if invalid path is defined.
The code is below; I have the same code in a standalone Java program that executes successfully (I verify row was added)Â .... *but fails when running on JBoss* :(
public String execute() throws Exception {
 Â
 //call Service class to store personBean's state in database
 final String dbName = "catNav";
 Connection con = null; // The connection to the database.
Â
 Statement stmt = null;
Â
 // The following code can throw errors, so they must be caught.
 try{
  // First, tell Java what driver to use and where to find it.
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 Â
  // Next, create a connection to your data source.
  // Specify that you are using the ODBC-JDBC Bridge.
  // And specify the data source name from ODBC.
  String database =
            "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/Users/mp/Documents/Work/JDBC/catNav.mdb;";
 Â
  con = DriverManager.getConnection(database, "", "");
  /* also tried:
  con = DriverManager.getConnection("jdbc:odbc:catNavDB");
  */
 Â
  // Create an SQL statement.
  stmt = con.createStatement();
Â
  // Execute some SQL to create a table in your database.
  // If the table already exists, an exception is thrown!
  String sqlSt = "insert into " + dbName +
    ".USERS " +
    "values('" + personBean.getFirstName() + "', " + // FIRST_NAME
    "'" + personBean.getLastName() + "', " +         // LAST_NAME
    personBean.getAge() + ", " +                     // AGE
    "'" + personBean.getEmail() + "'); " ;          // EMAIL
 Â
  // display SQL statment
  System.out.println (">>>>>>>>>>" + sqlSt );
 Â
  stmt.executeUpdate( sqlSt);Â
 Â
  }
  // Catch any exceptions that are thrown.
  etc.
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/820693#820693]
Start a new discussion in Datasource Configuration at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2077]