2015-11-21 3 views
-1

Я разработал приложение REST, используя трикотаж, где можно подключиться к базе данных (mysql). Я использую соединение jdbc. Ниже приведена конфигурация.Драйвер jdbc mysql не найден после развертывания

static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; 
static final String DB_URL = "jdbc:mysql://localhost:3306/DBNAME"; 

static final String USER = "root"; 
static final String PASS = "********"; 

public List<Item> getAll() { 
     List<Item> results = new ArrayList<>(); 

try (Connection conn = (Connection) DriverManager.getConnection(DB_URL, 
       USER, PASS); 
       Statement stmt = (Statement) conn.createStatement(); 
       ResultSet rs = stmt.executeQuery("SELECT * FROM items");) { 

      while (rs.next()) { 
       // Retrieve by column name 
       System.out.println(rs.getInt("ID")); 
       System.out.println(rs.getString("FormerCode")); 
       System.out.println(rs.getString("NewCode")); 
       results.add(new Item(rs.getInt("ID"), rs 
         .getString("FormerCode"), rs.getString("NewCode"))); 

      } 

     } catch (SQLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     return results; 

    } 

Все работает, когда я развертываю через Eclipse. Но когда я создаю файл войны и разворачиваю его вручную на сервере tomcat, он получает исключение, говоря, что нет подходящего драйвера.

No suitable driver found for 'jdbc:mysql://localhost:3306/DBNAME 

Я включил в банку файлы MySQL-разъем в обоих WEB-INF/Lib папки и TOMCAT_HOME/Lib папки. Но я все еще получаю эту ошибку. Сервер работает на сервере Ubuntu 14.04.

Пути, где добавлена ​​банка.

src/main/webapp/WEB-INF/lib 
usr/share/tomcat7/lib 

Что, по всей видимости, является проблемой, поэтому я добавил файлы jar в нужные места?

+0

Вопросы, требующие помощи по отладке («почему этот код не работает?») Должны включать в себя желаемое поведение, конкретную проблему или ошибку и кратчайший код, необходимый для воспроизведения в самом вопросе. Вопросы без четкого описания проблемы не полезны другим читателям. См.: Как создать минимальный, полный и проверенный пример. –

+0

Извините за это, я включил этот код. – janitha000

+0

Хорошо, вы добавили код, но неясно, что вы спрашиваете. Вы хотите знать, почему драйвер не загружен или вы создали код, который не работает? И это * не * MCVE веб-приложения. –

ответ

0

Ответ был получен при использовании интерфейса DriverManager для создания соединения JDBC, всегда создайте экземпляр вашего драйвера JDBC для его загрузки в свой загрузчик классов.

try { 
    // The newInstance() call is a work around for some 
    // broken Java implementations 

    Class.forName("com.mysql.jdbc.Driver").newInstance(); 
} catch (Exception ex) { 
    // handle the error 
} 

Спасибо всем.

1

Иногда java-класс не смог выбрать путь для водителя (mysql java connector jar file) из папки lib. Чтобы удалить эту проблему, вы можете извлечь соединительную банку в следующем каталоге вашего проекта.

SRC/основные/WebApp/WEB-INF/классы

ИЛИ

Вы также можете скомпилировать файл Java с пути CLASSPATH ведения mysql_java_connector.jar.

+0

В WEB-INF отсутствует папка, называемая классами. Нужно ли создавать эту папку? – janitha000

Смежные вопросы