OpenLayers и PostGIS. Проблема с wfs-t
Добавлено: 25 янв 2011, 12:47
Доброго времени суток.
Только начал работать с картографией. Просьба сильно не пинать)
Возникла проблема при работе с wfs. Приведу исходные данные.
Использую PostGIS 8.4.6.
Создал таблицу с тестовыми данными:
GeoServer 2.0.2:
Layer "roads":
Использую OpenLayers 2.10 (Revision: 10721).
Страница с картой:
Скрипт создания ("init.js"):
Карта отображается.
Ответ сервера:
Если установить свойство shema = "http://localhost:8084/geoserver202/wfs? ... pace?roads", то вылетает исключение, но карта отображатся.
Значение свойства взял из параметра <wfs:FeatureCollection xsi:schemaLocation >.
Это правильно?
При добавлении полигона на карту возникает ошибка:
Запрос к серверу:
Ответ:
Подскажите, в чем может быть причина ошибок?
Буду благодарен любой помощи
Только начал работать с картографией. Просьба сильно не пинать)
Возникла проблема при работе с wfs. Приведу исходные данные.
Использую PostGIS 8.4.6.
Создал таблицу с тестовыми данными:
Код: Выделить всё
create table gis_schema.roads (ID int4 not null, NAME varchar(50), TYPE varchar(20));
ALTER TABLE gis_schema.roads ADD CONSTRAINT roads_pkey PRIMARY KEY (ID);
alter table gis_schema.roads owner to gis;
GRANT all privileges on table gis_schema.roads to gis;
SELECT AddGeometryColumn('gis_schema','roads', 'geom', 4326, 'MULTIPOLYGON', 2);
insert into gis_schema.roads (ID, NAME, TYPE, geom) values (1, 'Дом 1','type1',GeomFromText('MULTIPOLYGON(((1 1,1.5 2,2 1.4,1 1)))', 4326));
insert into gis_schema.roads (ID, NAME, TYPE, geom) values (2, 'Дом 2','type1',GeomFromText('MULTIPOLYGON(((1 3,1 4,2 4,2 3,1 3)))', 4326));
insert into gis_schema.roads (ID, NAME, TYPE, geom) values (3, 'Дом 3','type2',GeomFromText('MULTIPOLYGON(((3 2,3 3,4 4,4 1,3 2)))', 4326));
insert into gis_schema.roads (ID, NAME, TYPE, geom) values (4, 'Дом 4','type2',GeomFromText('MULTIPOLYGON(((2.2 2.2,2.2 3,2.8 3,2.8 2.2,2.2 2.2)))', 4326));
Layer "roads":
Код: Выделить всё
<featureType>
<id>FeatureTypeInfoImpl-3587040a:12dbc50b6da:-7ff5</id>
<name>roads</name>
<nativeName>roads</nativeName>
<namespace>
<id>NamespaceInfoImpl--2f6128a2:12dbc3652b2:-7fff</id>
</namespace>
<title>roads</title>
<nativeCRS>GEOGCS["WGS 84",
DATUM["World Geodetic System 1984",
SPHEROID["WGS 84", 6378137.0, 298.257223563, AUTHORITY["EPSG","7030"]],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]],
UNIT["degree", 0.017453292519943295],
AXIS["Geodetic longitude", EAST],
AXIS["Geodetic latitude", NORTH],
AUTHORITY["EPSG","4326"]]</nativeCRS>
<srs>EPSG:4326</srs>
<nativeBoundingBox>
<minx>1.0</minx>
<maxx>4.0</maxx>
<miny>1.0</miny>
<maxy>4.0</maxy>
<crs>EPSG:4326</crs>
</nativeBoundingBox>
<latLonBoundingBox>
<minx>1.0</minx>
<maxx>4.0</maxx>
<miny>1.0</miny>
<maxy>4.0</maxy>
</latLonBoundingBox>
<projectionPolicy>FORCE_DECLARED</projectionPolicy>
<enabled>true</enabled>
<metadata>
<entry key="cachingEnabled">false</entry>
</metadata>
<store class="dataStore">
<id>DataStoreInfoImpl--2f6128a2:12dbc3652b2:-7ffe</id>
</store>
<maxFeatures>0</maxFeatures>
<numDecimals>0</numDecimals>
</featureType>
Страница с картой:
Код: Выделить всё
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<script src="OpenLayers.js" type="text/javascript"></script>
<script src="init.js" type="text/javascript"></script>
<script type="text/javascript">
function init(){
createMap();
}
</script>
</head>
<body onload="init()">
<h3>Index2</h3>
<div id="map"></div>
</body>
</html>
Код: Выделить всё
var map;
var wfs;
var bounds = new OpenLayers.Bounds(
1,1,
4,4
);
var options = {
maxExtent: bounds,
projection: "EPSG:4326"
};
function createMap(){
map = new OpenLayers.Map("map", options);
wfs = new OpenLayers.Layer.Vector("WFS", {
strategies: [new OpenLayers.Strategy.BBOX(), new OpenLayers.Strategy.Save({auto:true})],
projection: new OpenLayers.Projection("EPSG:4326"),
isBaseLayer: true,
protocol: new OpenLayers.Protocol.WFS({
version: "1.0.0",
url: "http://localhost:8084/geoserver202/wfs",
featureNS : "/rostov", //
featureType: "roads", //
srsName: "EPSG:4326",
geometryName: "geom",
//schema: "http://localhost:8084/geoserver202/wfs?service=WFS?version=1.0.0?request=DescribeFeatureType?typeName=rostovWorkspace?roads"
})
});
map.addLayers([wfs]);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.addControl(new OpenLayers.Control.EditingToolbar(wfs));
map.zoomToMaxExtent(bounds);
}
Ответ сервера:
Код: Выделить всё
<?xml version="1.0" encoding="UTF-8"?>
<wfs:FeatureCollection xmlns="http://www.opengis.net/wfs" xmlns:wfs="http://www.opengis.net/wfs" xmlns:rostovWorkspace="/rostov" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="/rostov http://localhost:8084/geoserver202/wfs?service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=rostovWorkspace%3Aroads http://www.opengis.net/wfs http://localhost:8084/geoserver202/schemas/wfs/1.0.0/WFS-basic.xsd">
<gml:boundedBy>
<gml:null>unknown</gml:null>
</gml:boundedBy>
<gml:featureMember>
<rostovWorkspace:roads fid="roads.1">
<rostovWorkspace:name>Дом 1</rostovWorkspace:name>
<rostovWorkspace:type>type1</rostovWorkspace:type>
<rostovWorkspace:geom>
<gml:MultiPolygon srsName="urn:x-ogc:def:crs:EPSG:4326">
<gml:polygonMember>
<gml:Polygon>
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">1,1 1.5,2 2,1.4 1,1</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
</gml:polygonMember>
</gml:MultiPolygon>
</rostovWorkspace:geom>
</rostovWorkspace:roads>
</gml:featureMember>
<gml:featureMember>
<rostovWorkspace:roads fid="roads.2">
<rostovWorkspace:name>Дом 2</rostovWorkspace:name>
<rostovWorkspace:type>type1</rostovWorkspace:type>
<rostovWorkspace:geom>
<gml:MultiPolygon srsName="urn:x-ogc:def:crs:EPSG:4326">
<gml:polygonMember>
<gml:Polygon>
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">1,3 1,4 2,4 2,3 1,3</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
</gml:polygonMember>
</gml:MultiPolygon>
</rostovWorkspace:geom>
</rostovWorkspace:roads>
</gml:featureMember>
<gml:featureMember>
<rostovWorkspace:roads fid="roads.3">
<rostovWorkspace:name>Дом 3</rostovWorkspace:name>
<rostovWorkspace:type>type2</rostovWorkspace:type>
<rostovWorkspace:geom>
<gml:MultiPolygon srsName="urn:x-ogc:def:crs:EPSG:4326">
<gml:polygonMember>
<gml:Polygon>
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">3,2 3,3 4,4 4,1 3,2</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
</gml:polygonMember>
</gml:MultiPolygon>
</rostovWorkspace:geom>
</rostovWorkspace:roads>
</gml:featureMember>
<gml:featureMember>
<rostovWorkspace:roads fid="roads.4">
<rostovWorkspace:name>Дом 4</rostovWorkspace:name>
<rostovWorkspace:type>type2</rostovWorkspace:type>
<rostovWorkspace:geom>
<gml:MultiPolygon srsName="urn:x-ogc:def:crs:EPSG:4326">
<gml:polygonMember>
<gml:Polygon>
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">2.2,2.2 2.2,3 2.8,3 2.8,2.2 2.2,2.2</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
</gml:polygonMember>
</gml:MultiPolygon>
</rostovWorkspace:geom>
</rostovWorkspace:roads>
</gml:featureMember>
</wfs:FeatureCollection>
Код: Выделить всё
25 Jan 12:26:54 INFO [geoserver.wfs] -
Request: getServiceInfo
25 Jan 12:26:54 ERROR [geoserver.ows] -
org.geoserver.platform.ServiceException: No service: ( WFS?version=1.0.0?request=DescribeFeatureType?typeName=rostovWorkspace?roads )
at org.geoserver.ows.Dispatcher.findService(Dispatcher.java:776)
at org.geoserver.ows.Dispatcher.service(Dispatcher.java:381)
at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:214)
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:875)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:183)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:47)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
25 Jan 12:26:54 INFO [geoserver.wfs] -
Request: getFeature
handle = null
service = WFS
version = 1.0.0
baseUrl = http://localhost:8084/geoserver202/
providedVersion = null
query = [net.opengis.wfs.impl.QueryTypeImpl@ead0c0 (group: null, propertyName: null, function: null, filter: [ geom bbox POLYGON ((-3.125 -3.125, -3.125 8.125, 8.125 8.125, 8.125 -3.125, -3.125 -3.125)) ], sortBy: null, featureVersion: null, handle: null, srsName: null, typeName: [{/rostov}roads])]
maxFeatures = null
outputFormat = GML2
resultType = results
traverseXlinkDepth = null
traverseXlinkExpiry = null
formatOptions = {}
Это правильно?
При добавлении полигона на карту возникает ошибка:
Код: Выделить всё
25 Jan 12:36:57 INFO [geoserver.wfs] -
Request: getServiceInfo
25 Jan 12:36:57 INFO [gwc.GWCCleanser] - Deleting GWC cache for rostovWorkspace:roads
25 Jan 12:36:57 INFO [file.FileBlobStore] - /home/eugene/.netbeans/6.9/apache-tomcat-6.0.26_base/temp/geowebcache/rostovWorkspace_roads does not exist or is not writable
25 Jan 12:36:57 INFO [gwc.GWCCleanser] - GWC cache for rostovWorkspace:roads deleted successfully
25 Jan 12:36:57 ERROR [geoserver.wfs] - Transaction failed
org.geoserver.wfs.WFSTransactionException: Error performing insert
at org.geoserver.wfs.InsertElementHandler.execute(InsertElementHandler.java:204)
at org.geoserver.wfs.Transaction.execute(Transaction.java:334)
at org.geoserver.wfs.Transaction.transaction(Transaction.java:109)
at org.geoserver.wfs.DefaultWebFeatureService.transaction(DefaultWebFeatureService.java:163)
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 org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.geoserver.ows.util.EMFLogger.invoke(EMFLogger.java:51)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy19.transaction(Unknown Source)
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 org.geoserver.ows.Dispatcher.execute(Dispatcher.java:599)
at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:230)
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:875)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:183)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to com.vividsolutions.jts.geom.Geometry
at org.geotools.jdbc.JDBCDataStore.insertSQL(JDBCDataStore.java:3245)
at org.geotools.jdbc.JDBCDataStore.insert(JDBCDataStore.java:1249)
at org.geotools.jdbc.JDBCDataStore.insert(JDBCDataStore.java:1207)
at org.geotools.jdbc.JDBCInsertFeatureWriter.write(JDBCInsertFeatureWriter.java:73)
at org.geotools.data.InProcessLockingManager$1.write(InProcessLockingManager.java:335)
at org.geotools.data.store.ContentFeatureStore.addFeatures(ContentFeatureStore.java:255)
at org.vfny.geoserver.global.GeoServerFeatureStore.addFeatures(GeoServerFeatureStore.java:81)
at org.geoserver.wfs.InsertElementHandler.execute(InsertElementHandler.java:173)
... 71 more
25 Jan 12:36:57 INFO [geoserver.wfs] -
Request: transaction
handle = null
service = WFS
version = 1.0.0
baseUrl = http://localhost:8084/geoserver202/
providedVersion = null
lockId = null
group = [wfs:insert=net.opengis.wfs.impl.InsertElementTypeImpl@1860bed (feature: [SimpleFeatureImpl:roads=[SimpleFeatureImpl.Attribute: name<name id=fid-3587040a_12dbc50b6da_-7feb>=null, SimpleFeatureImpl.Attribute: type<type id=fid-3587040a_12dbc50b6da_-7feb>=null, SimpleFeatureImpl.Attribute: geom<geom id=fid-3587040a_12dbc50b6da_-7feb>=]], handle: null, idgen: <unset>, inputFormat: <unset>, srsName: null)]
insert = [net.opengis.wfs.impl.InsertElementTypeImpl@1860bed (feature: [SimpleFeatureImpl:roads=[SimpleFeatureImpl.Attribute: name<name id=fid-3587040a_12dbc50b6da_-7feb>=null, SimpleFeatureImpl.Attribute: type<type id=fid-3587040a_12dbc50b6da_-7feb>=null, SimpleFeatureImpl.Attribute: geom<geom id=fid-3587040a_12dbc50b6da_-7feb>=]], handle: null, idgen: <unset>, inputFormat: <unset>, srsName: null)]
update = []
delete = []
native = []
releaseAction = ALL
Код: Выделить всё
<wfs:Transaction xmlns:wfs="http://www.opengis.net/wfs" service="WFS" version="1.0.0" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<wfs:Insert>
<feature:roads xmlns:feature="/rostov">
<feature:geom>
<gml:Polygon xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates decimal="." cs="," ts=" ">2.30224609375,3.84033203125 2.335205078125,3.323974609375 3.038330078125,3.587646484375 2.30224609375,3.84033203125</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
</feature:geom>
</feature:roads>
</wfs:Insert>
</wfs:Transaction>
Код: Выделить всё
<?xml version="1.0" encoding="UTF-8"?>
<wfs:WFS_TransactionResponse version="1.0.0" xmlns:wfs="http://www.opengis.net/wfs" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://localhost:8084/geoserver202/schemas/wfs/1.0.0/WFS-transaction.xsd">
<wfs:InsertResult>
<ogc:FeatureId fid="none"/>
</wfs:InsertResult>
<wfs:TransactionResult>
<wfs:Status>
<wfs:FAILED/>
</wfs:Status>
<wfs:Message>Error performing insert</wfs:Message>
</wfs:TransactionResult>
</wfs:WFS_TransactionResponse>
Буду благодарен любой помощи