Целевая папка Grails не отображается в пути к классам приложения - PullRequest
0 голосов
/ 23 апреля 2010

У меня есть проект grails с некоторыми дополнительными исходными файлами java в папке src / java. При компиляции / запуске сервера файлы в этом каталоге компилируются в целевую папку проекта вместе со всеми другими классами groovy / grails. Пока все хорошо.

Однако, когда я пытаюсь загрузить один из исходных файлов java (из src / java), используя отражение (точнее Class.forName), возникает исключение ClassNotFoundException. Особенность всего этого заключается в том, что если я скопирую тот же класс из целевого / папки проекта в следующее место (в окнах):

\. \ Grails 1.2.2 \ Projects \ \ ресурсы

тогда исключение не выдается, и соответствующий класс загружается нормально. Мне кажется, это указывает на то, что интегрированный сервер Grails просматривает только классы в динамически создаваемой папке проекта пользователя, а не в целевой папке фактического проекта.

Правильно ли мое понимание? Есть ли способ заставить Grails копировать определенные файлы классов из target / folder в папку resources внутри пользовательского каталога? Есть ли другой способ загрузить файлы классов, используя отражение? Я смотрел на использование загрузчика классов grailsApplication, но это тоже не сработало. Любые советы будут более чем приветствоваться. Заранее большое спасибо!

1 Ответ

1 голос
/ 23 апреля 2010

Веб-приложения используют динамические загрузчики классов, поэтому вам нужно использовать контекстный загрузчик классов:

def clazz = Class.forName(className, true, Thread.currentThread().contextClassLoader)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...