Первый вопрос от меня о переполнении стека.
Я создал веб-приложение Java, содержащее веб-сервис, использующий NetBeans (надеюсь, веб-приложение было правильным выбором). Я использую веб-приложение без дополнительных фреймворков. Этот веб-сервис использует драйвер JDBC sqlite для доступа к файлу базы данных sqlite.
Моя проблема заключается в том, что путь к файлу оказывается неверным, когда я пытаюсь сформировать строку соединения JDBC. Кроме того, рабочий каталог отличается при развертывании и при запуске тестов JUnit. Я где-то читал о включении файла в качестве ресурса, но примеров этого нигде не было видно.
В любом случае, как лучше всего открыть базу данных sqlite, как при развертывании веб-службы, так и при ее тестировании «локально»?
Я не знаю много о веб-сервисах, мне просто нужно, чтобы он работал, поэтому, пожалуйста, помогите мне с техническими деталями.
Обновление
Чтобы поместить это немного в контекст, некоторый код "println" дает это:
Печать рабочего каталога из простого теста JUnit дает
C:\MinaFiler\Work\SOA\BusTimetableWS
Вызов аналогичного метода веб-службы возвращает
C:\Program Files\sges-v3\glassfish\domains\domain1
Строка подключения формируется из префикса «jdbc: sqlite:» к пути, который на данный момент является абсолютным:
C:\MinaFiler\Work\SOA\BusTimetableWS\src\java\miun\bustimetable\database\sqlit\BusTimetableWS.db
Однако это не удается, потому что мои тесты выдают исключения, утверждающие, что таблицы базы данных не существуют, хотя они действительно существуют, я могу увидеть их с помощью sqlite3.exe.