2014-12-29 3 views
1

Мне нужно иметь событие, которое расскажет мне, когда закончится загрузка Grails.
Либо это может быть область кода, которая на самом деле является окончанием загрузки сервера.
Grails: когда заканчивается загрузка Grails?

Проблема, что я пытаюсь получить список плагинов, у меня есть код, который его создает, но он должен быть, когда сервер загружен полностью.
Я попытался сделать это int функцией init(), и это нехорошее место, чтобы это сделать.

Любые другие предложения?

код, который я пытаюсь пробег:

org.codehaus.groovy.grails.web.util.WebUtils.retrieveGrailsWebRequest().applicationContext.getBean('pluginManager').allPlugins.each {plugin -> 
    println "${plugin.name} - ${plugin.version}" } 
+0

Можете ли вы опубликовать фрагмент кода, который может сделать вещи более понятными? –

+0

Я отредактировал оригинальное сообщение – roeygol

+0

Вы должны поместить это в метод bootStrap.groovy init. Это просто запускается до появления приложения Grails. Вы пытаетесь сделать то же самое? –

ответ

2

Вам нужно издеваться запрос: Это даст вам список всех плагинов, которые используются в приложении (будет также включать в себя услуги, плагины контроллера)

def applicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext) 
def webRequest = grails.util.GrailsWebUtil.bindMockWebRequest(applicationContext) 

webRequest.applicationContext.getBean('pluginManager').allPlugins.each {plugin -> 
    println "${plugin.name} - ${plugin.version}" 
} 

Выход:

logging - 2.2.2 
core - 2.2.2 
pluginConfig - 0.1.5 
i18n - 2.2.2 
urlMappings - 2.2.2 
groovyPages - 2.2.2 
controllers - 2.2.2 
webappcore - 5.30.103 
codenarc - 0.17 
rendering - 0.4.3 
buildInfo - 1.2.3 

Надежда, что помогает !!!

+0

В настоящее время я внутри класса bootstrap.groovy, что я могу вместо переменной 'servletContext' (первая строка)? – roeygol

+0

Поместите этот код в метод init(), это должно сработать. После ввода необходимого импорта. В этом методе доступен servletContext. def init = {servletContext ->} –

+0

работает отлично! благодаря ! – roeygol