2008-09-14 3 views
1

У нас есть простое приложение для весеннего спящего режима (консольное приложение), где мы установили путь к классам в файле манифеста исполняемого файла jar. И приложение подключается к базе данных с помощью jtds-драйвера, все работает как ожидается на машине Windows и jdk1.6. Но в Linux приложение не может найти драйвер, Мы запускаем программу, используя java -jar MainClassNamejtds Нет подходящего драйвера Исключение при запуске проекта, построенного на maven

Любые предложения, почему это может произойти, очень приветствуются.

+0

Какую ошибку вы видите? Если это либо NoClassDefError, либо ClassNotFoundException, то это, вероятно, проблема с classpath. – 2008-09-14 17:53:26

ответ

0

Честно говоря, это звучит как плохой CLASSPATH. Одна вещь, которую я предлагаю начать отлаживать эту проблему, - это копирование пакета jtds на тот же путь, что и ваши основные пакеты/классы, и посмотреть, работает ли он. Таким образом, вы можете гарантировать, что манифест Classpath является или не является проблемой. Spring/Hibernate полагается на каталог lib, поэтому он всегда будет на пути к классам, потому что это основная структура. Используйте также каталог lib для тестирования.

Надеюсь, что эти рекомендации помогут. Также отправляйте больше информации, например, пути, пути к классам и файлы манифеста.

+0

Fernando, Путь к классам создается Maven в файле манифеста, и он отлично работает на машине Windows. В любом случае, я опубликую запись класса в файле манифеста в понедельник. – 2008-09-14 09:47:42

2

Эта проблема возникла из-за неправильного URL-адреса нашего jdbc.url. Это объясняется тем, что maven обрабатывает свойство jdbc.url как специальное свойство, а при профилировании вместо url определяется в filter.properties. И именно по этой причине исключение «Без подходящего драйвера». Вопрос должен быть более ясным.

В любом случае, чтобы исправить это, мы должны были переименовать свойства jdbc.url в jdbc.url.somename. Это фиксировало нашу проблему с профилированием maven. У нас также была аналогичная проблема профилирования maven для свойства, называемого «server.name». Это свойство фильтра также путало профилирование maven. Мы также должны были изменить название этого свойства.

Еще раз спасибо Фернандо.