2014-02-01 3 views
0

Я хочу определить путь grails.plugin.elfinder.rootDir во внешнем файле конфигурации. я, используя следующие в Config.groovyКак определить grails.plugin.elfinder.rootDir во внешнем файле конфигурации

grails.config.locations = [ "classpath:${appName}-config.properties", 
"classpath:${appName}-config.groovy", 
"file:${userHome}/docm/${appName}-config.properties", 
"file:${userHome}/docm/${appName}-config.groovy"] 

И я создал файл appName-config.properties, в котором у меня есть следующие:

grails.plugin.elfinder.rootDir = "/home/francesco/docm_patients_doc/{patientcf}/" 

у меня есть два разных вопроса в разработке и производственной среде:

  • развитие: когда вид с elFinder загружен Я следующее исключение

    ERROR elfinder.ElfinderConnectorController - 
    Error encountered while executing command elfinderOpenCommand 
    Message: /home/francesco/IdeaProjects/medicalOfficeManager/"/home/francesco/docm_patients_doc/sderet45t34e345t/" 
    Line | Method 
    ->> 62 | getTree in 
    grails.plugin.elfinder.filemanager.ElfinderLocalFileSystemFileManager 
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
    |  57 | getTree in  '' 
    |  44 | files . . in grails.plugin.elfinder.command.ElfinderBaseCommand 
    |  32 | execute in grails.plugin.elfinder.command.ElfinderOpenCommand 
    | 195 | doFilter in grails.plugin.cache.web.filter.PageFragmentCachingFilter 
    |  63 | doFilter in grails.plugin.cache.web.filter.AbstractFilter 
    | 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor 
    | 615 | run  in java.util.concurrent.ThreadPoolExecutor$Worker 
    ^ 722 | run . . . in java.lang.Thread 
    
  • производство. при запуске приложения, я следующее исключение

    grails.plugin.elfinder.rootDir не настроен

Почему у меня это два разных вопроса?

EDIT: Следующие примеры приведены here и here теперь у меня есть в обоих случаях за исключением того, что я вижу в производстве, то есть:

ERROR context.GrailsContextLoader - Error initializing the application:  
grails.plugin.elfinder.rootDir is not configured 
Message: grails.plugin.elfinder.rootDir is not configured 
Line | Method 
->> 33 | doCall     in ElfinderConnectorGrailsPlugin$_closure1 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 757 | invokeBeanDefiningClosure in grails.spring.BeanBuilder 
|  584 | beans . . . . . . . . . . in  '' 
| 527 | invokeMethod    in  '' 
| 334 | innerRun . . . . . . . . in java.util.concurrent.FutureTask$Sync 
| 166 | run      in java.util.concurrent.FutureTask 
| 1145 | runWorker . . . . . . . . in java.util.concurrent.ThreadPoolExecutor 
| 615 | run      in java.util.concurrent.ThreadPoolExecutor$Worker 
^ 722 | run . . . . . . . . . . . in java.lang.Thread 

EDIT 2:

следующий путь в котором я заменяю местозаполнитель

def replacePatientCfInConfig(String patientcf) 
{ 

    def path = grailsApplication.config.grails.plugin.elfinder.rootDir?.replace("{patientcf}", patientcf) 
    elfinderFileManager.root = path 
    return 
} 

Этот метод вызывается на странице gsp, в которой я определяю <div id="elfinder"></div>, прямо перед ним, а также до JavaScript, необходимый для elfinder

Я также модифицирована, в развитии, путь доступа к файлу конфигурации следующим образом:

def ENV_NAME = "PROPERTIES_PATH" 
    if(!grails.config.location || !(grails.config.location instanceof List)) { 
     grails.config.location = [] 
    } 
    if(System.getenv(ENV_NAME)) { 
     println "Including configuration file specified in environment: " + System.getenv(ENV_NAME); 
     grails.config.location << "file:" + System.getenv(ENV_NAME) 
     println(grails.config.location) 

    } else if(System.getProperty(ENV_NAME)) { 
     println "Including configuration file specified on command line: " + System.getProperty(ENV_NAME); 
     grails.config.location << "file:" + System.getProperty(ENV_NAME) 
     println(grails.config.location) 

    } else { 
     println "No external configuration file defined." 
    } 

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

ERROR context.GrailsContextLoader - Error initializing the application: 
grails.plugin.elfinder.rootDir is not configured 

Message: grails.plugin.elfinder.rootDir is not configured 
Line | Method 
->> 33 | doCall     in ElfinderConnectorGrailsPlugin$_closure1 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 757 | invokeBeanDefiningClosure in grails.spring.BeanBuilder 
| 584 | beans . . . . . . . . . . in  '' 
| 527 | invokeMethod    in  '' 
| 334 | innerRun . . . . . . . . in java.util.concurrent.FutureTask$Sync 
| 166 | run      in java.util.concurrent.FutureTask 
| 1145 | runWorker . . . . . . . . in java.util.concurrent.ThreadPoolExecutor 
| 615 | run      in java.util.concurrent.ThreadPoolExecutor$Worker 
^ 722 | run . . . . . . . . . . . in java.lang.Thread 
+0

Где находится путь/home/francesco/IdeaProjects/medicalOfficeManager /, вы настроили его где угодно? Вы получаете какие-либо исключения из бэкэнда? вы можете вставить fullstacktrace здесь –

+0

, что путь - это каталог приложения grails, в котором я использую elFinder. Стек-стек теперь находится в моем столбце выше – FrancescoDS

+0

Я не знаю, где этот путь добавляется .. его не должно быть.Также обратите внимание: динамическая часть у вас там $ {patientcf} не поддерживается, насколько я помню, вы динамически устанавливаете свойство root во время выполнения http://stackoverflow.com/questions/20547566/grails-elfinder-plugin-use -placeholder-in-rootdir. Возможно, это неправильный корневой каталог –

ответ

0

Следующие работы для среды разработки. Я только изменил grails.config.location в grails.config.locations и изменил синтаксис конфигурационного файла из grails.plugin.elfinder.rootDir = ... в

grails{
plugin{
elfinder{
rootDir = ...}
}
}

В производственной среде, переменная окружения никогда не читал ... почему?

Смежные вопросы