Hi Ethan, So, the proper user for thredds would be the tomcat user, "tomcat" (in this case)? Everything "thredds" and under is owned by "tomcat". Do I have to also make the group "tomcat" as well? (that shouldn't matter, right?) Are there any other salient files to look at. I will do another install shortly... Java 1.7 Tomcat 7.0.39 Thredds 4.3.16 Will also set owner and group to tomcat just for completeness. Will provide report of results... If you can think of anything in the mean time please let me know. P.S. I'd rather have the property set in the file - it makes is explicit and leaves a trail of how things were run. Thanks. On 5/21/13 2:39 PM, Ethan Davis wrote:
Hi Gavin, We are not seeing any problems with this functionality in 4.3. Rather than edit the tds.properties file directly, we recommend (see [1]) using symbolic links or setting the property on the command-line with a "-D" option. For instance: -Dtds.content.root.path=/esg/content However, editing tds.properties should work and I suspect that is not the problem. The nested stacktrace you include below, in particular this partCaused by: java.lang.IllegalStateException: Content directory does not exist and could not be created at thredds.server.config.TdsContext.afterPropertiesSet(TdsContext.java:304)looks like a permission problem. Did the /esg/content/thredds directory already exist when you started the TDS and got these errors? Ethan [1] http://www.unidata.ucar.edu/projects/THREDDS/tech/tds4.3/reference/ConfigDirectory.html#moveLocation On 5/21/2013 2:55 PM, Gavin M. Bell wrote:Hi John and friends..., Here is exactly what is in that file... # more *./WEB-INF/classes/thredds/server/tds.properties* # DO NOT EDIT THIS FILE: It is automatically generated from C:\dev\tds4.2\tds\src\main\template\thredds\server\tds.properties.TEMPLATE tds.version=4.2.10 tds.version.brief=4.2 tds.version.builddate=20120417.2151 tds.url="" class="moz-txt-link-freetext" href="http://www.unidata.ucar.edu/projects/THREDDS/tech/TDS.html">http://www.unidata.ucar.edu/projects/THREDDS/tech/TDS.html tds.documentation.url="" class="moz-txt-link-freetext" href="http://www.unidata.ucar.edu/projects/THREDDS/tech/TDS.html">http://www.unidata.ucar.edu/projects/THREDDS/tech/TDS.html tds.logo.url="" tds.logo.alt=TDS *tds.content.root.path=/esg/content* tds.content.path=thredds tds.content.startup.path=WEB-INF/altContent/startup tds.content.idd.path=WEB-INF/altContent/idd/thredds tds.content.motherlode.path=WEB-INF/altContent/motherlode/thredds tds.config.file=threddsConfig.xml tds.install.url="" Under /esg/content is: "thredds" which contains: # ls -l thredds/ total 116 drwxr-xr-x 6 tomcat climate 4096 May 18 15:16 cache drwxr-xr-x 2 tomcat climate 4096 Dec 13 2011 cacheAged -rwxr-xr-x 1 tomcat climate 1658 May 20 16:31 catalog.xml drwxr-xr-x 2 tomcat climate 4096 Aug 1 2012 collectionCache drwxr-xr-x 2 tomcat climate 4096 Dec 13 2011 ehcache drwxrwxr-x 3 tomcat climate 4096 Sep 4 2012 *esgcet* -rwxr-xr-x 1 tomcat climate 715 May 20 16:33 las_tds.xml -rwxr-xr-x 1 tomcat climate 715 May 18 15:17 las_tds.xml.bak -rwxr-xr-x 1 tomcat climate 715 Dec 14 2011 las_tds.xml.correct -rwxr-xr-x 1 tomcat climate 717 May 18 2011 las_tds.xml.tmpl -rwxr-xr-x 1 tomcat climate 717 Dec 13 2011 las_tds.xml.tmpl.bak drwxr-xr-x 2 tomcat climate 20480 May 21 12:00 logs drwxr-xr-x 4 tomcat climate 4096 Dec 13 2011 public -rwxr-xr-x 1 tomcat climate 7630 May 20 16:33 threddsConfig.xml -rwxr-xr-x 1 tomcat climate 7157 Jan 10 2011 threddsConfig.xml.bak -rwxr-xr-x 1 tomcat climate 7630 Dec 14 2011 threddsConfig.xml.correct -rwxr-xr-x 1 tomcat climate 545 Jan 10 2011 threddsConfig.xml.las -rwxr-xr-x 1 tomcat climate 545 Dec 13 2011 threddsConfig.xml.las.bak -rwxr-xr-x 1 tomcat climate 7157 Jan 10 2011 threddsConfig.xml.tmpl -rwxr-xr-x 1 tomcat climate 7157 Dec 13 2011 threddsConfig.xml.tmpl.bak This setup allows us to swap out thredds - more practically, *destroy* the whole tomcat installation *without* *fubar'ing* peoples' hard built catalogs (under *esgcet*). Since this location also contains configuration portions that we have added to allow for LAS interoperability, externalizing this from tomcat is important to the sanity of the stack. For the ESGF Node stack... all "state" is kept under /esg such that everything else is solely mechanics of transformations. /This has worked excellently in v4.2.10/ that we have been shipping with out stack. How can we get this same behavior for 4.3? On 5/21/13 8:53 AM, John Caron wrote:1) is this the exact property setting: *tds.content.root.path=/esg/content* what do the * mean? 2) any chance tomcat doesnt have write permission in that directory? 3) we are double checking how this is supposed to work On 5/21/2013 2:10 AM, Gavin M. Bell wrote:Hi, John, So this is an excerpt from the tomcat's catalina.out I believe that the issue may be because we move the content directory out from under thredds and put it elsewhere. We were able to do this successfully with 4.2.10 by modifying the*tds.properties* file to have the entry "*tds.content.root.path=/esg/content*". So I guess the question is what has changed such that this is scenario is no longer valid? It smells like there may be some Spring things happening that assume something about the location of things. The idea is that we want to disassociate the location of the content from the installation. ESGF writes it's catalogs in a directory called esgcet this lives under the thredds' content directory. */esg/content/thredds* root@esgf-node1:[thredds]:[1158]> ls -l total 164 drwxr-xr-x 4 tomcat tomcat 4096 Apr 30 02:27 cache drwxr-xr-x 2 tomcat tomcat 4096 Apr 7 2011 cacheAged -rwxr-xr-x 1 tomcat tomcat 1661 Apr 30 02:27 catalog.xml drwxr-xr-x 2 tomcat tomcat 4096 Apr 29 23:19 collectionCache drwxr-xr-x 2 tomcat tomcat 4096 Apr 7 2011 ehcache -rwxr-xr-x 1 tomcat tomcat 3173 Apr 7 2011 enhancedCatalog.xml *drwxr-xr-x 3 tomcat tomcat 4096 Apr 7 2011 esgcet* -rwxr-xr-x 1 tomcat tomcat 715 Apr 30 02:30 las_tds.xml -rwxr-xr-x 1 tomcat tomcat 715 Apr 30 01:38 las_tds.xml.bak -rwxr-xr-x 1 tomcat tomcat 717 May 18 2011 las_tds.xml.tmpl -rwxr-xr-x 1 tomcat tomcat 705 Jul 7 2011 las_tds.xml.tmpl.bak drwxr-xr-x 2 tomcat tomcat 4096 May 20 23:00 logs drwxr-xr-x 4 tomcat tomcat 4096 Apr 7 2011 public drwxr-xr-x 2 tomcat tomcat 4096 Apr 7 2011 root -rwxr-xr-x 1 tomcat tomcat 7630 Apr 30 02:30 threddsConfig.xml -rwxr-xr-x 1 tomcat tomcat 7157 Jan 10 2011 threddsConfig.xml.bak -rwxr-xr-x 1 tomcat tomcat 545 Jan 10 2011 threddsConfig.xml.las -rwxr-xr-x 1 tomcat tomcat 7157 Jan 10 2011 threddsConfig.xml.tmpl -rwxr-xr-x 1 tomcat tomcat 3765 Apr 7 2011 wmsConfig.xml (catalina.out output) Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private thredds.server.config.TdsContext thredds.servlet.HtmlWriter.tdsContext; nested exception\ is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tdsContext' defined in file [/usr/local/apache-tomcat-6.0.36/webapps/thredds/WEB-INF/classes/thred\ ds/server/config/TdsContext.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Content directory does not exist and could not be created at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:506) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:284) ... 29 more & nbsp; Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tdsContext' defined in file [/usr/local/apache-tomcat-6.0.36/webapps/thredds/WEB-INF/classe\ s/thredds/server/config/TdsContext.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Content directory does not exist and could not be created at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:848) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:790) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:707) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:478) ... 31 more & nbsp; Caused by: java.lang.IllegalStateException: Content directory does not exist and could not be created at thredds.server.config.TdsContext.afterPropertiesSet(TdsContext.java:304) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452) ... 41 more -- Gavin M. Bell -- "Never mistake a clear view for a short distance." -Paul Saffo-- Senior Computer Scientist / Mathematics Programmer Gavin M. Bell Lawrence Livermore National Labs -- "Never mistake a clear view for a short distance." -Paul Saffo (GPG Key - http://rainbow.llnl.gov/dist/keys/gavin.asc) A796 CE39 9C31 68A4 52A7 1F6B 66B7 B250 21D5 6D3E -- Senior Computer Scientist / Mathematics Programmer Gavin M. Bell Lawrence Livermore National Labs -- "Never mistake a clear view for a short distance." -Paul Saffo (GPG Key - http://rainbow.llnl.gov/dist/keys/gavin.asc) A796 CE39 9C31 68A4 52A7 1F6B 66B7 B250 21D5 6D3E |