Назад | Перейти на главную страницу

Где мне разместить внешние библиотеки tomcat?

Я пытаюсь запускать приложения scala под tomcat, и всякий раз, когда я использую стандартные java-файлы, все в порядке. Однако, когда я делаю такие вещи, как конкатенация строк или генерация последовательности, я получаю странные ошибки для NoClassDefFound ...

Мои первые мысли заключаются в том, что я не помещаю необходимый jar-файл scala-библиотеки в правильные каталоги или мне нужно выполнить некоторую дополнительную настройку, чтобы мой сервлет знал о внешней зависимости. Я пробовал поместить scala-library.jar как в каталог «lib» tomcat6, так и в ROOT / WEB-INF / lib, но ни один из них, похоже, не позволяет моим сервлетам использовать классы в банке. В чем дело?

Перед запуском tomcat убедитесь, что переменная среды CLASSPATH содержит путь к файлу scala-library.jar.

Если вы поместите scala-library.jar в каталог JRE / lib / ext, это должно сработать. Конечно, это JRE, на которой работает Tomcat. Это помещает scala в «загрузчик классов по умолчанию», а не в загрузчик классов Tomcats ... и теоретически должно решить вашу проблему. По сути, это то же самое, что и ответ Тома О'Коннорса, за исключением того, что я говорю вам, почему вы получили ошибку «класс не найден»: из-за настраиваемого загрузчика классов.