Thanks a lot for taking a look. Can you reproduce the issue?
The problem is at: org.geoserver.catalog.CatalogBuilder.java:989
cinfo.setNativeCoverageName(coverageName);
Because coverageName is null in this case.
I found I can at least work around the 500 Server Error by changing the REST
call to the following:
curl -X POST –u admin:geoserver -H "Content-Type: application/json" -d '{
"coverage": {
"name": "rest_test_01",
"nativeCoverageName": "sfdem"
}
}
'
"http://myhost:8080/geoserver/rest/workspaces/test/coveragestores/rest_test_01/coverages.json"
But this workaround has two problems. A REST client should not need to know the
correct nativeCoverageName to make this request work. Also,, GeoServer does
not honor the supplied name for the new coverage/layer, instead it uses the
nativeCoverageName, e.g. the new coverage/layer is called
“test:sfdem<http://engsellis:8080/geoserver/web/wicket/bookmarkable/org.geoserver.web.data.resource.ResourceConfigurationPage?name=sfdem&wsName=test>”
in this case.
It’s starting to seem like a bug in GeoServer to me but I could be wrong. Any
help or insight is very much appreciated.
Thanks,
Scott
From: Bryan Moore [mailto:[email protected]]
Sent: Friday, October 21, 2016 12:04 PM
To: Ellis, Scott (U.S. Person); [email protected]
Subject: Re: [Geoserver-devel] Trouble adding coverage through REST
Scott,
Sorry yes. I got a bit mixed up between your step 1 and step 2. Let me
look at it again.
Bryan
On 10/21/16 1:56 PM, Ellis, Scott wrote:
Actually, POST on coverages is supposed to create a new coverage:
From: http://docs.geoserver.org/stable/en/user/rest/api/coverages.html
/workspaces/<ws>/coveragestores/<cs>/coverages[.<format>]
Controls all coverages in a given coverage store and workspace.
Method
Action
Status code
Formats
Default Format
GET
List all coverages in coverage store cs
200
HTML, XML, JSON
HTML
POST
Create a new coverage
201 with Locationheader
XML, JSON
PUT
405
DELETE
405
Once the coverage is created, then you can no longer POST to it, only PUT,
which is shown in the table you pasted in your response.
The error I am getting trying to POST a new coverage (which should be allowed
by the API) is:
500 Internal Server Error
“:Resource native name must not be null”
Thanks,
Scott
From: Bryan Moore [mailto:[email protected]]
Sent: Friday, October 21, 2016 11:35 AM
To:
[email protected]<mailto:[email protected]>
Subject: Re: [Geoserver-devel] Trouble adding coverage through REST
Scott,
However, the second step of adding the coverage, e.g.:
curl -X POST -u admin:geoserver -H "Content-Type: application/json" -d '{
"coverage": {
"name": "rest_test_01"
}
}
'
"http://myhost:8080/geoserver/rest/workspaces/test/coveragestores/rest_test_01/coverages.json"<http://myhost:8080/geoserver/rest/workspaces/test/coveragestores/rest_test_01/coverages.json%22>;
The problem is that POST on coverages as shown in
http://docs.geoserver.org/stable/en/user/rest/api/coverages.html returns a 405
which is "Method not allowed"
GET
Return coveragec
200
HTML, XML, JSON
HTML
quietOnNotFound<http://docs.geoserver.org/stable/en/user/rest/api/coverages.html#rest-api-coverages-quietonnotfound>
POST
405
PUT
Modify coverage c
200
XML,JSON
DELETE
Delete coveragec
200
recurse<http://docs.geoserver.org/stable/en/user/rest/api/coverages.html#rest-api-coverages-recurse>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel