Hi all,
We are testing the new THREDDS release 4.3 but the WMS service throws an
exception (attached file) with the following NetCDF.
<http://thredds.socib.es/thredds/wms/hf_radar/hf_radar_ibiza-scb_codarssproc001/L1/2012/dep0001_hf-radar-ibiza_scb-codarssproc001_L1_2012-09.nc?service=WMS&version=1.3.0&request=GetCapabilities>
<http://thredds.socib.es/thredds/wms/hf_radar/hf_radar_ibiza-scb_codarssproc001/L1/2012/dep0001_hf-radar-ibiza_scb-codarssproc001_L1_2012-09.nc?service=WMS&version=1.3.0&request=GetCapabilities>
<http://thredds.socib.es/thredds/wms/hf_radar/hf_radar_ibiza-scb_codarssproc001/L1/2012/dep0001_hf-radar-ibiza_scb-codarssproc001_L1_2012-09.nc?service=WMS&version=1.3.0&request=GetCapabilities>
dep0001_hf-radar-ibiza_scb-codarssproc001_L1_2012-09.nc<https://docs.google.com/a/socib.es/file/d/0B6PLQmFeeXzZVER3OGNpcE0zZlk/edit>
The release 4.2.10 doesn't throws that exception and works fine
http://thredds.socib.es/thredds/wms/hf_radar/hf_radar_ibiza-scb_codarssproc001/L1/2012/dep0001_hf-radar-ibiza_scb-codarssproc001_L1_2012-09.nc?service=WMS&version=1.3.0&request=GetCapabilities
We are using Tomcat 7 and Java 6. The threddsConfig.xml and wmConfig.xml
are also attached.
Kristian,
--
Kristian Sebastian Blalid
SOS Division: Data Center Technical
Tel: 971439860 - Fax: 971439979
E-mail: kristian.sebastian@xxxxxxxx
GRAVE: El Servlet.service() para el servlet [wms] en el contexto con ruta
[/thredds] lanzó la excepción [javax.el.ELException: Error reading
'intervalTime' en el tipo thredds.server.wms.ThreddsScalarLayer] con causa raíz
java.lang.NullPointerException
at
thredds.server.wms.config.LayerSettings.isIntervalTime(LayerSettings.java:141)
at
thredds.server.wms.ThreddsScalarLayer.isIntervalTime(ThreddsScalarLayer.java:216)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:87)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
at
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
at
org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:985)
at
org.apache.jsp.WEB_002dINF.jsp.wms.capabilities_005fxml_jsp._jspx_meth_c_005fwhen_005f1(capabilities_005fxml_jsp.java:1287)
at
org.apache.jsp.WEB_002dINF.jsp.wms.capabilities_005fxml_jsp._jspx_meth_c_005fchoose_005f1(capabilities_005fxml_jsp.java:1257)
at
org.apache.jsp.WEB_002dINF.jsp.wms.capabilities_005fxml_jsp._jspx_meth_c_005fotherwise_005f0(capabilities_005fxml_jsp.java:1227)
at
org.apache.jsp.WEB_002dINF.jsp.wms.capabilities_005fxml_jsp._jspx_meth_c_005fchoose_005f0(capabilities_005fxml_jsp.java:1095)
at
org.apache.jsp.WEB_002dINF.jsp.wms.capabilities_005fxml_jsp._jspx_meth_c_005fif_005f4(capabilities_005fxml_jsp.java:1060)
at
org.apache.jsp.WEB_002dINF.jsp.wms.capabilities_005fxml_jsp._jspx_meth_c_005fforEach_005f5(capabilities_005fxml_jsp.java:789)
at
org.apache.jsp.WEB_002dINF.jsp.wms.capabilities_005fxml_jsp._jspx_meth_c_005fif_005f0(capabilities_005fxml_jsp.java:682)
at
org.apache.jsp.WEB_002dINF.jsp.wms.capabilities_005fxml_jsp._jspx_meth_c_005fforEach_005f4(capabilities_005fxml_jsp.java:638)
at
org.apache.jsp.WEB_002dINF.jsp.wms.capabilities_005fxml_jsp._jspService(capabilities_005fxml_jsp.java:227)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
at
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
at
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)
at
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
thredds.servlet.filter.RequestQueryFilter.doFilter(RequestQueryFilter.java:120)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
thredds.servlet.filter.RequestPathFilter.doFilter(RequestPathFilter.java:102)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
thredds.server.RequestBracketingLogMessageFilter.doFilter(RequestBracketingLogMessageFilter.java:48)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:196)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
<?xml version="1.0" encoding="UTF-8"?>
<threddsConfig>
<!-- all options are commented out in standard install - meaning use default
values -->
<!-- see
http://www.unidata.ucar.edu/projects/THREDDS/tech/reference/ThreddsConfigXMLFile.html
-->
<serverInformation>
<name>SOCIB TDS</name>
<logoUrl>threddsIcon.gif</logoUrl>
<logoAltText>SOCIB Thredds for data access and discovery</logoAltText>
<abstract>Scientific Data</abstract>
<keywords>meteorology, atmosphere, climate, ocean, earth science</keywords>
<contact>
<name>SOCIB Data centre</name>
<organization>SOCIB</organization>
<email>datacenter@xxxxxxxx</email>
<!--phone></phone-->
</contact>
<hostInstitution>
<name>SOCIB</name>
<webSite>http://www.socib.es/</webSite>
<logoUrl>myGroup.gif</logoUrl>
<logoAltText>SOCIB</logoAltText>
</hostInstitution>
</serverInformation>
<!--
The <catalogRoot> element:
For catalogs you don't want visible from the /thredds/catalog.xml chain
of catalogs, you can use catalogRoot elements. Each catalog root config
catalog is crawled and used in configuring the TDS.
<catalogRoot>myExtraCatalog.xml</catalogRoot>
<catalogRoot>myOtherExtraCatalog.xml</catalogRoot>
-->
<!--
* Setup for generated HTML pages.
*
* NOTE: URLs may be absolute or relative, relative URLs must be relative
* to the webapp URL, i.e., http://server:port/thredds/.
-->
<htmlSetup>
<!--
* CSS documents used in generated HTML pages.
* The CSS document given in the "catalogCssUrl" element is used for all
pages
* that are HTML catalog views. The CSS document given in the
"standardCssUrl"
* element is used in all other generated HTML pages.
* -->
<standardCssUrl>tds.css</standardCssUrl>
<catalogCssUrl>tdsCat.css</catalogCssUrl>
<!--
* The URLs (relative to "/thredds/") and alternate text for both
* folder and dataset icons used in HTML catalog views.
* -->
<folderIconUrl>folder.gif</folderIconUrl>
<folderIconAlt>Folder</folderIconAlt>
<datasetIconUrl>dataset.gif</datasetIconUrl> <!-- Not currently used. -->
<datasetIconAlt>Dataset</datasetIconAlt> <!-- Not currently used. -->
</htmlSetup>
<!--
The <CatalogServices> element:
- Services on local TDS served catalogs are always on.
- Services on remote catalogs are set with the allowRemote element
below. They are off by default (recommended).
-->
<CatalogServices>
<allowRemote>false</allowRemote>
</CatalogServices>
<!--
Configuring the CDM (netcdf-java library)
see
http://www.unidata.ucar.edu/software/netcdf-java/reference/RuntimeLoading.html
<nj22Config
<ioServiceProvider class="edu.univ.ny.stuff.FooFiles"/>
<coordSysBuilder convention="foo" class="test.Foo"/>
<coordTransBuilder name="atmos_ln_sigma_coordinates" type="vertical"
class="my.stuff.atmosSigmaLog"/>
<typedDatasetFactory datatype="Point"
class="gov.noaa.obscure.file.Flabulate"/>
<table type="GRIB1" filename="/home/rkambic/grib/tables/userlookup.lst"/>
<table type="GRIB2"
filename="/home/rkambic/grib/tables/grib2userparameters"/>
</nj22Config>
-->
<!--
CDM uses the DiskCache directory to store temporary files, like uncompressed
files.
<DiskCache>
<alwaysUse>false</alwaysUse>
<scour>1 hour</scour>
<maxSize>1 Gb</maxSize>
</DiskCache>
-->
<DiskCache>
<alwaysUse>true</alwaysUse>
<scour>1 hour</scour>
<maxSize>4 Gb</maxSize>
</DiskCache>
<!--
Caching open NetcdfFile objects.
default is to allow 200 - 400 open files, cleanup every 10 minutes
<NetcdfFileCache>
<minFiles>200</minFiles>
<maxFiles>400</maxFiles>
<scour>10 min</scour>
</NetcdfFileCache>
-->
<NetcdfFileCache>
<minFiles>0</minFiles>
<maxFiles>100</maxFiles>
<scour>10 min</scour>
</NetcdfFileCache>
<!--
The <HTTPFileCache> element:
allow 20 - 40 open datasets, cleanup every 10 minutes
used by HTTP Range requests.
<HTTPFileCache>
<minFiles>20</minFiles>
<maxFiles>40</maxFiles>
<scour>10 min</scour>
</HTTPFileCache>
-->
<HTTPFileCache>
<minFiles>0</minFiles>
<maxFiles>40</maxFiles>
<scour>10 min</scour>
</HTTPFileCache>
<!--
Writing GRIB indexes.
<GribIndexing>
<setExtendIndex>false</setExtendIndex>
<alwaysUseCache>false</alwaysUseCache>
</GribIndexing>
-->
<!--
Persist joinNew aggregations to named directory. scour every 24 hours, delete
stuff older than 30 days
<AggregationCache>
<scour>24 hours</scour>
<maxAge>30 days</maxAge>
</AggregationCache>
-->
<AggregationCache>
<scour>20 min</scour>
<maxAge>1 hours</maxAge>
</AggregationCache>
<!--
How to choose the template dataset for an aggregation. latest, random, or
penultimate
<Aggregation>
<typicalDataset>random</typicalDataset>
</Aggregation>
-->
<!--
The Netcdf Subset Service is off by default.
<NetcdfSubsetService>
<allow>false</allow>
<scour>10 min</scour>
<maxAge>-1 min</maxAge>
<metarDataDir>/opt/tomcat/content/thredds/public/stn/</metarDataDir>
<metarRawDir>/data/ldm/pub/decoded/netcdf/surface/metar/</metarRawDir>
</NetcdfSubsetService>
-->
<!--
<Opendap>
<ascLimit>50</ascLimit>
<binLimit>500</binLimit>
<serverVersion>opendap/3.7</serverVersion>
</Opendap>
-->
<!--
The WCS Service is off by default.
Also, off by default (and encouraged) is operating on a remote dataset.
<WCS>
<allow>false</allow>
<allowRemote>false</allowRemote>
<scour>15 min</scour>
<maxAge>30 min</maxAge>
</WCS>
-->
<!--
<WMS>
<allow>false</allow>
<allowRemote>false</allowRemote>
<maxImageWidth>2048</maxImageWidth>
<maxImageHeight>2048</maxImageHeight>
</WMS>
-->
<WMS>
<allow>true</allow>
<allowRemote>false</allowRemote>
<maxImageWidth>2048</maxImageWidth>
<maxImageHeight>2048</maxImageHeight>
</WMS>
<NCISO>
<ncmlAllow>true</ncmlAllow>
<uddcAllow>true</uddcAllow>
<isoAllow>true</isoAllow>
</NCISO>
<!-- CatalogGen service is off by default.
<CatalogGen>
<allow>false</allow>
</CatalogGen>
-->
<!-- DLwriter service is off by default.
As is support for operating on remote catalogs.
<DLwriter>
<allow>false</allow>
<allowRemote>false</allowRemote>
</DLwriter>
-->
<!-- DqcService is off by default.
<DqcService>
<allow>false</allow>
</DqcService>
-->
<!--
Link to a Viewer application on the HTML page:
<Viewer>my.package.MyViewer</Viewer>
-->
<!--
Add a DataSource - essentially an IOSP with access to Servlet request
parameters
<DatsetSource>my.package.DatsetSourceImpl</DatsetSource>
-->
<!--
Modify Logging parameters. Normally use log4j.xml
<Logging>
<DatePattern></DatePattern>
<MaxFileSize></MaxFileSize>
<MaxFiles></MaxFiles>
</Logging>
-->
</threddsConfig>
<?xml version="1.0" encoding="UTF-8"?>
<!--
Detailed configuration of the WMS service. This config file can be used to
set default styling parameters for each dataset/variable, and to enable or
disable
the GetFeatureInfo operation.
See
http://www.resc.reading.ac.uk/trac/myocean-tools/wiki/WmsDetailedConfiguration
for more information.
-->
<!DOCTYPE wmsConfig [
<!ELEMENT wmsConfig (global, overrides?)>
<!ELEMENT global (defaults, standardNames?)>
<!ELEMENT defaults (allowFeatureInfo, defaultColorScaleRange,
defaultPaletteName, defaultNumColorBands, logScaling)>
<!ELEMENT standardNames (standardName*)>
<!ELEMENT standardName (defaultColorScaleRange?, defaultPaletteName?,
defaultNumColorBands?, logScaling?)>
<!ATTLIST standardName name CDATA #REQUIRED>
<!ATTLIST standardName units CDATA #REQUIRED>
<!ELEMENT overrides (datasetPath*)>
<!ELEMENT datasetPath (pathDefaults?, variables?)>
<!ATTLIST datasetPath pathSpec CDATA #REQUIRED>
<!ELEMENT pathDefaults (allowFeatureInfo?, defaultColorScaleRange?,
defaultPaletteName?, defaultNumColorBands?, logScaling?)>
<!ELEMENT variables (variable*)>
<!ELEMENT variable (defaultColorScaleRange?, defaultPaletteName?,
defaultNumColorBands?, logScaling?)>
<!ATTLIST variable id CDATA #REQUIRED>
<!ELEMENT allowFeatureInfo (#PCDATA)>
<!ELEMENT defaultColorScaleRange (#PCDATA)>
<!ELEMENT defaultPaletteName (#PCDATA)>
<!ELEMENT defaultNumColorBands (#PCDATA)>
<!ELEMENT logScaling (#PCDATA)>
]>
<wmsConfig>
<global>
<!-- These settings apply to all datasets unless overridden below -->
<defaults>
<!-- The global defaults. All elements are mandatory -->
<allowFeatureInfo>true</allowFeatureInfo>
<defaultColorScaleRange>-50 50</defaultColorScaleRange>
<defaultPaletteName>ferret</defaultPaletteName>
<defaultNumColorBands>20</defaultNumColorBands>
<logScaling>false</logScaling>
</defaults>
<standardNames>
<!-- Use this section to set defaults per standard name -->
<!-- Units must come from the UDUNITS vocabulary -->
<standardName name="sea_water_potential_temperature"
units="Celsius">
<defaultColorScaleRange>11.5 28</defaultColorScaleRange>
</standardName>
<standardName name="sea_water_temperature" units="Celsius">
<defaultColorScaleRange>11.5 28</defaultColorScaleRange>
</standardName>
<standardName name="sea_surface_height_above_sea_level"
units="meter">
<defaultColorScaleRange>-0.2 0.2</defaultColorScaleRange>
</standardName>
<standardName name="sea_water_salinity" units="">
<defaultColorScaleRange>35.8 38.5</defaultColorScaleRange>
</standardName>
<standardName name="sea_water_potential_density" units="kg m-3">
<defaultColorScaleRange>1025 1029</defaultColorScaleRange>
</standardName>
<standardName name="sea_water_velocity" units="meter second-1">
<defaultColorScaleRange>0 1</defaultColorScaleRange>
</standardName>
<standardName name="barotropic_sea_water_velocity" units="meter
second-1">
<defaultColorScaleRange>0 0.5</defaultColorScaleRange>
</standardName>
<standardName name="mass_concentration_of_chlorophyll_in_sea_water"
units="kg m-3">
<logScaling>true</logScaling>
</standardName>
<!-- TODO: how about allowing "*fraction" to map to 0:1? -->
<!-- TODO: how about allowing multiple standard names to map to the
same settings,
either through a glob expression or through a list? -->
</standardNames>
</global>
<overrides>
<datasetPath pathSpec="testAll/*eta_211.nc">
<!-- Will apply to all paths that match the path spec above -->
<pathDefaults>
<!-- These will apply to all variables in this path unless
overridden below -->
<allowFeatureInfo>false</allowFeatureInfo>
<defaultPaletteName>occam</defaultPaletteName>
</pathDefaults>
<variables>
<!-- Configure variables individually according to their
internal ID.
This is the most specific setting and will override any
others -->
<variable id="Z_sfc">
<defaultColorScaleRange>10 20</defaultColorScaleRange>
</variable>
</variables>
</datasetPath>
</overrides>
</wmsConfig>