On Oct 3, 2011, at 12:08 PM, Dennis Heimbigner wrote:
> the url part is fine. The issue has to do with url escaping
> and especially with escaping of the constraint.
> For those of you running non-tds servers, the question is:
> do you unescape the query part or not upon receiving the
> incoming url.
Hyrax handles unescaping the URL. It's process is to unescape all URL escape
codes (%xx) except spaces (which are %20) and the do whatever needs to be done.
The reason it defers unescaping spaces is to streamline parsing of identifiers
in their names.
James
>
>
> Roland Schweitzer wrote:
>> On 10/03/2011 03:37 AM, Raymond Cramer wrote:
>>> I am having a similar problem. From a browser I can return ASCII data, so
>>> the
>>> OPeNDAP is working.
>>> http://...../thredds/dodsC/vault/..._cf.nc.ascii?crs,depth[3599:1:3719][19199:1:19319]
>>>
>>>
>>> If I try to access this through code, using http my log file fills up with
>>> msgs which suggests I can't use http (or something else needs setting ;-)):
>> I believe that the only way to do this via the Java API is to open the
>> unconstrained URL (http://...../thredds/dodsC/vault/..._cf.nc) and then use
>> the API to request the hyperslab you want rather than trying to open the
>> constrained URL.
>> Roland
>>> Exception
>>> http://....:8080/thredds/dodsC/vault/...._cf.nc?crs,depth[3600:1:3719][19200:1:19319],lat[3600:1:3719],lon[19200:1:19319]
>>>
>>> java.lang.IllegalArgumentException: Invalid uri
>>> 'http://....:8080/thredds/dodsC/vault/...._cf.nc?crs,depth[3600:1:3719][19200:1:19319],lat[3600:1:3719],lon[19200:1:19319]':
>>>
>>> Invalid query
>>> at
>>> org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.java:222)
>>>
>>> at
>>> org.apache.commons.httpclient.methods.HeadMethod.<init>(HeadMethod.java:94)
>>> at
>>> ucar.unidata.io.http.HTTPRandomAccessFile.<init>(HTTPRandomAccessFile.java:92)
>>>
>>> at
>>> ucar.unidata.io.http.HTTPRandomAccessFile.<init>(HTTPRandomAccessFile.java:78)
>>>
>>> at ucar.nc2.NetcdfFile.getRaf(NetcdfFile.java:300)
>>> at ucar.nc2.NetcdfFile.open(NetcdfFile.java:281)
>>> at ucar.nc2.dataset.NetcdfDataset.openFile(NetcdfDataset.java:335)
>>> at ucar.nc2.dataset.NetcdfDataset.openFile(NetcdfDataset.java:280)
>>> ...
>>>
>>> If I try to use dods, I get a lot more msgs, it accesses the file, outputs
>>> the header data but fails on the data (when the call becomes http again for
>>> the DAS?):
>>>
>>> [org.apache.commons.httpclient.HttpMethodBase] Resorting to protocol version
>>> default close connection policy
>>> [org.apache.commons.httpclient.HttpMethodBase] Should NOT close connection,
>>> using HTTP/1.1
>>> [org.apache.commons.httpclient.HttpConnection] enter
>>> HttpConnection.isResponseAvailable()
>>> [org.apache.commons.httpclient.HttpConnection] enter
>>> HttpConnection.releaseConnection()
>>> [org.apache.commons.httpclient.HttpConnection] Releasing connection back to
>>> connection manager.
>>> [org.apache.commons.httpclient.MultiThreadedHttpConnectionManager] enter
>>> HttpConnectionManager.releaseConnection(HttpConnection)
>>> [org.apache.commons.httpclient.MultiThreadedHttpConnectionManager] Freeing
>>> connection, hostConfig=HostConfiguration[host=http://....:8080]
>>> [org.apache.commons.httpclient.MultiThreadedHttpConnectionManager] enter
>>> HttpConnectionManager.ConnectionPool.getHostPool(HostConfiguration)
>>> [org.apache.commons.httpclient.util.IdleConnectionHandler] Adding connection
>>> at: ........
>>> [org.apache.commons.httpclient.MultiThreadedHttpConnectionManager] Notifying
>>> no-one, there are no waiting threads
>>> [ucar.nc2.dods.DODSNetcdfFile] DODSNetcdfFile
>>> dods://....:8080/thredds/dodsC/vault/...._cf.nc?crs,depth[3600:1:3719][19200:1:19319],lat[3600:1:3719],lon[19200:1:19319]
>>>
>>> java.lang.IllegalArgumentException: Invalid uri
>>> 'http://....:8080/thredds/dodsC/vault/...._cf.nc.das?crs,depth[3600:1:3719][19200:1:19319],lat[3600:1:3719],lon[19200:1:19319]':
>>>
>>> Invalid query
>>> at
>>> org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.java:222)
>>>
>>> at
>>> org.apache.commons.httpclient.methods.GetMethod.<init>(GetMethod.java:89)
>>> at opendap.dap.DConnect2.openConnection(DConnect2.java:205)
>>> at opendap.dap.DConnect2.getDAS(DConnect2.java:399)
>>> at ucar.nc2.dods.DODSNetcdfFile.<init>(DODSNetcdfFile.java:186)
>>> at ucar.nc2.dataset.NetcdfDataset.openDODS(NetcdfDataset.java:379)
>>> at ucar.nc2.dataset.NetcdfDataset.openFile(NetcdfDataset.java:316)
>>> at ucar.nc2.dataset.NetcdfDataset.openFile(NetcdfDataset.java:280)
>>> .....
>>> ERROR [uk.ac.bodc.Netcdf_Utils] trying to open
>>> dods://....:8080/thredds/dodsC/vault/...._cf.nc?crs,depth[3600:1:3719][19200:1:19319],lat[3600:1:3719],lon[19200:1:19319]
>>>
>>> java.io.FileNotFoundException: Cant open
>>> dods://....:8080/thredds/dodsC/vault/...._cf.nc?crs,depth[3600:1:3719][19200:1:19319],lat[3600:1:3719],lon[19200:1:19319]
>>>
>>> or as DODS
>>> dods://....:8080/thredds/dodsC/vault/...._cf.nc?crs,depth[3600:1:3719][19200:1:19319],lat[3600:1:3719],lon[19200:1:19319]
>>>
>>> Invalid uri
>>> 'http://....:8080/thredds/dodsC/vault/...._cf.nc.das?crs,depth[3600:1:3719][19200:1:19319],lat[3600:1:3719],lon[19200:1:19319]':
>>>
>>> Invalid query
>>> at ucar.nc2.dataset.NetcdfDataset.openDODS(NetcdfDataset.java:381)
>>> at ucar.nc2.dataset.NetcdfDataset.openFile(NetcdfDataset.java:316)
>>> at ucar.nc2.dataset.NetcdfDataset.openFile(NetcdfDataset.java:280)
>>> ....
>>>
>>> I am accessing this through inFile = NetcdfDataset.openFile(inFileName,
>>> null);
>>>
>>> I hope I haven't broken any rules for the length of this msg, hopefully
>>> there's sufficient info that someone recognises the problem.
>>>
>>> --
>>> View this message in context:
>>> http://netcdf-java.1577316.n2.nabble.com/Getting-a-NetcdfFile-object-from-a-dods-url-tp6677113p6854222.html
>>>
>>> Sent from the NetCDF-Java mailing list archive at Nabble.com.
>>>
>>> _______________________________________________
>>> netcdf-java mailing list
>>> netcdf-java@xxxxxxxxxxxxxxxx
>>> For list information or to unsubscribe, visit:
>>> http://www.unidata.ucar.edu/mailing_lists/
>> _______________________________________________
>> netcdf-java mailing list
>> netcdf-java@xxxxxxxxxxxxxxxx
>> For list information or to unsubscribe, visit:
>> http://www.unidata.ucar.edu/mailing_lists/
>
> _______________________________________________
> netcdf-java mailing list
> netcdf-java@xxxxxxxxxxxxxxxx
> For list information or to unsubscribe, visit:
> http://www.unidata.ucar.edu/mailing_lists/
--
James Gallagher
jhrg at mac.com