Hi all,
I've found some more strange things going on with thredds in my effort
to trace the exception I'm seeing when trying to access the files served
up by my servlet (it serves up netCDF files from a custom database based
on url parameters). (errors cause caused by a NullPointerException
thredds - I believe the result of DConnect passing a null string to
ServerVersion after trying to get a non-existent HTTP header, trace below)
The class dods.servlet.DODSServlet is being resourced from
WEB-INF/lib/dods-1.1.4.jar, and not from
WEB-INF/classes/dods/servlet/DODSServlet.jar.
I found what seemed to be inconsistency with a similar issue accessing
DConnect.class, which is similarly available from two places - it seems
like it might be sometimes loaded from one place and sometimes from
another, as the debugging output I put in there isn't showing up for all
URLs. (i.e. the debugging output shows up for data from my servlet, but
not from apache, despite being well above where the problems are
occurring when trying to load my data).
Obviously it's possible that there's something I'm missing in terms of
program logic, but having two different .class files "just isn't right"
in my book, it adds confusion about which resource is to be used.
I will try to go through the process of trimming out the un-neccesary
.class files and come back to the list with a tidied report of what's
used, but it would be good to get some feedback as to whether this is a
useful thing to do, whether there is a rule of thumb about which class
is "supposed" to be used etc.
So far I've been debugging through a mixture of looking at source code
from the ftp server (for the .jars) and diffing the .class files to
confirm whether classes are varying.
Cheers,
-T
DODServlet ERROR (anyExceptionHandler): java.lang.NullPointerException
requestState:
dataset: 'foo.nc'
suffix: 'dds'
CE: ''
compressOK: false
InitParameters:
maxAggDatasetsCached: '20'
maxNetcdfFilesCached: '100'
maxDODSDatasetsCached: '100'
displayName: 'THREDDS/DODS Aggregation/NetCDF/Catalog Server'
java.lang.NullPointerException
at dods.dap.ServerVersion.<init>(ServerVersion.java:45)
at dods.dap.DConnect.openConnection(DConnect.java:207)
at dods.dap.DConnect.getDDS(DConnect.java:278)
at ucar.nc2.dods.DODSNetcdfFile.<init>(DODSNetcdfFile.java:150)
at ucar.nc2.dods.DODSNetcdfFile.<init>(DODSNetcdfFile.java:106)
at ucar.nc2.dataset.NetcdfDataset.tryDODS(NetcdfDataset.java:107)
at ucar.nc2.dataset.NetcdfDataset.factory(NetcdfDataset.java:85)
at dods.servers.netcdf.NcDataset.<init>(NcDataset.java:137)
at dods.servers.netcdf.NcDataset.<init>(NcDataset.java:38)
at
dods.servers.netcdf.NcDataset$NetcdfFactory.factory(NcDataset.java:69)
at dods.servers.agg.CacheDataset.acquire(CacheDataset.java:142)
at dods.servers.netcdf.NcDataset.acquire(NcDataset.java:88)
at
dods.servers.agg.CatalogServlet.getDataset(CatalogServlet.java:657)
at dods.servlet.DODSServlet.doGetDDS(DODSServlet.java:569)
at dods.servlet.DODSServlet.doGet(DODSServlet.java:1548)
at dods.servers.agg.CatalogServlet.doGet(CatalogServlet.java:527)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)