Hi,
I am using geoserver 2.5 and geoserver-manager 1.5.2. I am trying to create a layer from an existing table imported in Postgis using the following code :
GSFeatureTypeEncoder fte = new GSFeatureTypeEncoder();
fte.setName(item.getSigName()); //item.getSigName() is my Postgis table name
fte.setSRS(tmp.getCrs());
fte.setNativeBoundingBox(-5.0, -5.0, 5.0, 5.0, tmp.getCrs());
GSLayerEncoder layerEncoder = new GSLayerEncoder();
layerEncoder.setEnabled(true);
layerEncoder.setQueryable(true);
// source.getVirtualItem().getSigName() is the name of the datastore
if(!manager.getPublisher().publishDBLayer(WORKSPACE, source.getVirtualItem().getSigName(), fte, layerEncoder)){
System.out.print(“error”);
}
Geoserver logs are :
2015-05-12 11:15:23,646 INFO [org.geoserver] - Loaded feature type ‘tt_1431420716200’, enabled
2015-05-12 11:15:23,802 ERROR [geoserver.rest] - :Error occurred creating table
2015-05-12 11:15:23,802 ERROR [geoserver.rest] -
org.geoserver.rest.RestletException: java.io.IOException: Error occurred creating table
at org.geoserver.rest.ReflectiveResource.handleException(ReflectiveResource.java:325)
at org.geoserver.rest.ReflectiveResource.handlePost(ReflectiveResource.java:123)
at org.restlet.Finder.handle(Finder.java:296)
at org.geoserver.rest.BeanDelegatingRestlet.handle(BeanDelegatingRestlet.java:37)
at org.restlet.Filter.doHandle(Filter.java:105)
at org.restlet.Filter.handle(Filter.java:134)
at org.restlet.Router.handle(Router.java:444)
at org.geoserver.rest.RESTDispatcher$1.handle(RESTDispatcher.java:204)
at com.noelios.restlet.ext.servlet.ServletConverter.service(ServletConverter.java:129)
at org.geoserver.rest.RESTDispatcher.handleRequestInternal(RESTDispatcher.java:86)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
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.doPost(FrameworkServlet.java:789)
The logs makes me think that geoserver tries to create the table but it already exists so an error occurred.
What is the correct way to create a layer from an existing table ?
Best regards,
François