This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
Hi Don, There is no way for a Java Servlet web application to get the value of $CATALINA_HOME. What it can get is the location of the web app root directory ($CATALINA_HOME/webapps/thredds). The "../.." you see in the error message is us locating $CATALINA_HOME. I suspect that somewhere in our code (though I'm not finding it at the moment) the "../.." is resolved with a getCanonicalPath() which also resolves symlinks. Since your webapps directory is probably a symbolic link, it is getting canonical-ized by this process and causing the problem you are seeing. Are you getting a stacktrace from this in your catalina.out or localhost.*.log? If so, could you send it to me. I've added this to our issue tracking system here https://www.unidata.ucar.edu/jira/browse/TDS-196 It probably won't get fixed before TDS 4.3. In the mean time, two current solutions exist: 1) Create a content/thredds directory as a peer to the directory the webapps symLink references. Make sure content/thredds directory can be written to by the user under which Tomcat runs. More on this at the following FAQ (written about RH5 but also applies to RH6 and, evidently, to the yum installed Tomcat 6): http://www.unidata.ucar.edu/projects/THREDDS/tech/tds4.2/faq.html#rh5SymLinksAndContent 2) This one is mentioned in the support message you mention below. It involves giving the TDS an absolute path to a content directory by setting the tds.content.root.path system property with a command-line argument (e.g., "-Dtds.content.root.path=/some/absolute/path"). More on this option here http://www.unidata.ucar.edu/projects/THREDDS/tech/tds4.1/reference/InstallOptions.html#ChangeTdsContentDir I'll add this info to the above FAQ as well. Ethan > Ethan- > > I'm trying to install the TDS on a CentOS system that had tomcat6 > installed via yum. I'm getting the same problem described here: > > http://www.unidata.ucar.edu/support/help/MailArchives/thredds/msg01537.html > > CATALINA_HOME is set to be /usr/share/tomcat6 in tomcat6.conf. I > created a content directory in $CATALINA_HOME which is writable by the > tomcat user. The problem is that most of the directories in > /usr/share/tomcat6 are links to other directories. Given the error > message: > > > ERROR - TdsContext.init(): Content directory does not exist and could not be > > created [/usr/share/tomcat6/webapps/thredds/../../content/thredds]. > > It seems like the code is using a relative path to create the content > directory, rather than using $CATALINA_HOME/content. Shouldn't it use > the latter rather than the former? > > Don Ticket Details =================== Ticket ID: IEA-499199 Department: Support THREDDS Priority: Normal Status: Closed