Как разрешить ссылки на классы во внешнем файле конфигурации для развертывания Grails War? - PullRequest
1 голос
/ 04 октября 2011

Я использую Grails 1.3.7. Я создаю файл войны и развертываю его в Tomcat. У меня есть внешний файл конфигурации groovy, который я использую для настройки ведения журнала. Я добавил в объявление несколько приложений для ведения журнала perf4j, но теперь файл конфигурации не удается скомпилировать, поскольку он не может разрешить полные имена классов.

Код выглядит так:

log4j = {
    ...
    // file appender that writes out the URLs of the Google Chart API graphs generated by the performanceGraphAppender
    def performanceGraphFileAppender = new org.apache.log4j.FileAppender(
        fileName: "log/perfGraphs.log",
        layout: pattern(conversionPattern: '%m%n')
    )
    appender name: 'performanceGraphFileAppender', performanceGraphFileAppender

    // this appender creates the Google Chart API graphs
    def performanceGraphAppender = new org.perf4j.log4j.GraphingStatisticsAppender(
        graphType: 'Mean',      // possible options: Mean, Min, Max, StdDev, Count or TPS
        tagNamesToGraph: 'tag1,tag2,tag3',
        dataPointsPerGraph: 5
    )
    performanceGraphAppender.addAppender(performanceGraphFileAppender)
    appender name: 'performanceGraph', performanceGraphAppender

    ...
}

и сообщение об ошибке, записанное в журнал, выглядит так:

script1317679813518843914255.groovy: 38: unable to resolve class org.perf4j.log4j.GraphingStatisticsAppender 
@ line 38, column 34.
    def performanceGraphAppender = new org.perf4j.log4j.GraphingStatisticsAppender(

Файл войны, который я создаю, содержит все необходимые файлы JAR. Любые мысли о том, как заставить это решить ссылки?

Спасибо

Gene

1 Ответ

0 голосов
/ 04 октября 2011

Существует вероятность, что после развертывания он начнет использовать log4j от tomcat.Взгляните на папку lib, возможно, она содержит файлы log4j.Если это правда - он использует другой загрузчик классов, который не может видеть ваши классы perf4j.

Вы можете попытаться поместить ваши банки perf4j в tomcat's lib, возможно, это может решить эту проблему

...