Hi,
test with a rest client (http://rest-client.googlecode.com/files/restclient-ui-2.3-jar-with-dependencies.jar) in POST
Put a url
Check “POST” in tab “Method”
Put GML in tab “Body”
GEOSERVER 2.0.0:
oracle NG - Connect on oracle spatial
1 table with 2 columns = GEOM (Multipolygon) and Name (Sting)
URL:
http://mrsig.fadq.qc/geoserver/wfs
BODY:
not works:
<wfs:Transaction xmlns:wfs="http://www.opengis.net/wfs" service="WFS" version="1.1.0" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<wfs:Delete typeName="fadq:SAGR_V3" xmlns:fadq="http://mrsig.fadq.qc/fadq"><ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"><ogc:FeatureId fid="SAGR_V3.15"/></ogc:Filter></wfs:Delete>
<wfs:Insert><feature:SAGR_V3 xmlns:feature="http://mrsig.fadq.qc/fadq"><feature:GEOM><gml:MultiSurface xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:32198"><gml:surfaceMember><gml:Polygon><gml:exterior><gml:LinearRing><gml:posList>-206601.84570313 290549.51953125 -204419.83886719 291086.62890625 -206064.73632813 291523.03027344 -206601.84570313 290549.51953125</gml:posList></gml:LinearRing></gml:exterior></gml:Polygon></gml:surfaceMember></gml:MultiSurface></feature:GEOM></feature:SAGR_V3></wfs:Insert>
</wfs:Transaction>
Log:
2010-01-11 08:45:24,773 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:579)
at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:209)
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:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
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:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:183)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:47)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
at org.geotools.data.BatchFeatureEvent.add(BatchFeatureEvent.java:88)
at org.geotools.data.store.ContentState.fireFeatureEvent(ContentState.java:342)
at org.geotools.data.store.ContentState.fireFeatureAdded(ContentState.java:298)
at org.geotools.jdbc.JDBCInsertFeatureWriter.write(JDBCInsertFeatureWriter.java:81)
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
2010-01-11 08:45:24,797 INFO [geoserver.wfs] -
Request: transaction
handle = null
service = WFS
version = 1.1.0
baseUrl = http://mrsig.fadq.qc:80/geoserver/
providedVersion = null
lockId = null
group = [wfs:delete=net.opengis.wfs.impl.DeleteElementTypeImpl@anonymised.com (filter: [ SAGR_V3.15 ], handle: null, typeName: {http://mrsig.fadq.qc/fadq}SAGR_V3), wfs:insert=net.opengis.wfs.impl.InsertElementTypeImpl@anonymised.com (feature: [SimpleFeatureImpl:SAGR_V3=[SimpleFeatureImpl.Attribute: GEOM=MULTIPOLYGON (((-206601.84570313 290549.51953125, -204419.83886719 291086.62890625, -206064.73632813 291523.03027344, -206601.84570313 290549.51953125))), SimpleFeatureImpl.Attribute: NAME=null]], handle: null, idgen: , inputFormat: , srsName: null)]
insert = [net.opengis.wfs.impl.InsertElementTypeImpl@anonymised.com (feature: [SimpleFeatureImpl:SAGR_V3=[SimpleFeatureImpl.Attribute: GEOM=MULTIPOLYGON (((-206601.84570313 290549.51953125, -204419.83886719 291086.62890625, -206064.73632813 291523.03027344, -206601.84570313 290549.51953125))), SimpleFeatureImpl.Attribute: NAME=null]], handle: null, idgen: , inputFormat: , srsName: null)]
update =
delete = [net.opengis.wfs.impl.DeleteElementTypeImpl@anonymised.com (filter: [ SAGR_V3.15 ], handle: null, typeName: {http://mrsig.fadq.qc/fadq}SAGR_V3)]
native =
releaseAction = ALL
2010-01-11 08:45:24,819 ERROR [geoserver.ows] -
org.geoserver.wfs.WFSException: Error performing insert
at org.geoserver.wfs.response.TransactionResponse.v_1_1(TransactionResponse.java:197)
at org.geoserver.wfs.response.TransactionResponse.write(TransactionResponse.java:67)
at org.geoserver.ows.Dispatcher.response(Dispatcher.java:705)
at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:213)
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:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
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:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:183)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:47)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)
REST client log:
<ows:ExceptionReport version=“1.0.0”
xsi:schemaLocation=“http://www.opengis.net/ows http://mrsig.fadq.qc:80/geoserver/schemas/ows/1.0.0/owsExceptionReport.xsd”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:ows=“http://www.opengis.net/ows”>
<ows:Exception exceptionCode=“InvalidParameterValue”>
ows:ExceptionTextError performing insert</ows:ExceptionText>
</ows:Exception>
</ows:ExceptionReport>
works:
<wfs:Transaction xmlns:wfs="http://www.opengis.net/wfs" service="WFS" version="1.1.0" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
```
<wfs:Insert><feature:SAGR_V3 xmlns:feature="http://mrsig.fadq.qc/fadq"><feature:GEOM><gml:MultiSurface xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:32198"><gml:surfaceMember><gml:Polygon><gml:exterior><gml:LinearRing><gml:posList>-206601.84570313 290549.51953125 -204419.83886719 291086.62890625 -206064.73632813 291523.03027344 -206601.84570313 290549.51953125</gml:posList></gml:LinearRing></gml:exterior></gml:Polygon></gml:surfaceMember></gml:MultiSurface></feature:GEOM></feature:SAGR_V3></wfs:Insert>
```
<wfs:Delete typeName="fadq:SAGR_V3" xmlns:fadq="http://mrsig.fadq.qc/fadq"><ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"><ogc:FeatureId fid="SAGR_V3.15"/></ogc:Filter></wfs:Delete>
</wfs:Transaction>
**Logs:**
2010-01-11 09:06:17,005 INFO [geoserver.wfs] -
Request: transaction
handle = null
service = WFS
version = 1.1.0
baseUrl = [http://mrsig.fadq.qc:80/geoserver/](http://mrsig.fadq.qc:80/geoserver/)
providedVersion = null
lockId = null
group = [wfs:insert=net.opengis.wfs.impl.InsertElementTypeImpl@anonymised.com (feature: [SimpleFeatureImpl:SAGR_V3=[SimpleFeatureImpl.Attribute: GEOM<GEOM id=fid--7a05802c_1261da1bd12_-7ffe>=MULTIPOLYGON (((-206601.84570313 290549.51953125, -204419.83886719 291086.62890625, -206064.73632813 291523.03027344, -206601.84570313 290549.51953125))), SimpleFeatureImpl.Attribute: NAME<NAME id=fid--7a05802c_1261da1bd12_-7ffe>=null]], handle: null, idgen: <unset>, inputFormat: <unset>, srsName: null), wfs:delete=net.opengis.wfs.impl.DeleteElementTypeImpl@anonymised.com (filter: [ SAGR_V3.15 ], handle: null, typeName: {http://mrsig.fadq.qc/fadq}SAGR_V3)]
insert = [net.opengis.wfs.impl.InsertElementTypeImpl@anonymised.com (feature: [SimpleFeatureImpl:SAGR_V3=[SimpleFeatureImpl.Attribute: GEOM<GEOM id=fid--7a05802c_1261da1bd12_-7ffe>=MULTIPOLYGON (((-206601.84570313 290549.51953125, -204419.83886719 291086.62890625, -206064.73632813 291523.03027344, -206601.84570313 290549.51953125))), SimpleFeatureImpl.Attribute: NAME<NAME id=fid--7a05802c_1261da1bd12_-7ffe>=null]], handle: null, idgen: <unset>, inputFormat: <unset>, srsName: null)]
update = []
delete = [net.opengis.wfs.impl.DeleteElementTypeImpl@anonymised.com (filter: [ SAGR_V3.15 ], handle: null, typeName: {http://mrsig.fadq.qc/fadq}SAGR_V3)]
native = []
releaseAction = ALL
**REST client log:**
<wfs:TransactionResponse version="1.1.0" xsi:schemaLocation="[http://www.opengis.net/wfs](http://www.opengis.net/wfs) [http://mrsig.fadq.qc:80/geoserver/schemas/wfs/1.1.0/wfs.xsd](http://mrsig.fadq.qc:80/geoserver/schemas/wfs/1.1.0/wfs.xsd)" xmlns:fadq="[http://mrsig.fadq.qc/fadq](http://mrsig.fadq.qc/fadq)" xmlns:ogc="[http://www.opengis.net/ogc](http://www.opengis.net/ogc)" xmlns:tiger="[http://www.census.gov](http://www.census.gov)" xmlns:wfs="[http://www.opengis.net/wfs](http://www.opengis.net/wfs)" xmlns:topp="[http://www.openplans.org/topp](http://www.openplans.org/topp)" xmlns:xsi="[http://www.w3.org/2001/XMLSchema-instance](http://www.w3.org/2001/XMLSchema-instance)" xmlns:sf="[http://www.openplans.org/spearfish](http://www.openplans.org/spearfish)" xmlns:ows="[http://www.opengis.net/ows](http://www.opengis.net/ows)" xmlns:gml="[http://www.opengis.net/gml](http://www.opengis.net/gml)" xmlns:xlink="[http://www.w3.org/1999/xlink"><wfs:TransactionSummary><wfs:totalInserted>1</wfs:totalInserted><wfs:totalUpdated>0</wfs:totalUpdated><wfs:totalDeleted>1</wfs:totalDeleted></wfs:TransactionSummary><wfs:TransactionResults/><wfs:InsertResults><wfs:Feature><ogc:FeatureId](http://www.w3.org/1999/xlink"><wfs:TransactionSummary><wfs:totalInserted>1</wfs:totalInserted><wfs:totalUpdated>0</wfs:totalUpdated><wfs:totalDeleted>1</wfs:totalDeleted></wfs:TransactionSummary><wfs:TransactionResults/><wfs:InsertResults><wfs:Feature><ogc:FeatureId) fid="SAGR_V3.19"/></wfs:Feature></wfs:InsertResults></wfs:TransactionResponse>
thanks,
Pat
Andrea Aime aaime@anonymised.com 01/11/10 4:12 am >>>
Rahkonen Jukka ha scritto:
Hi,
In which order request are sent? Geoserver seems to take multiple
transactions only if they follow order insert/update/delete.
The code just loops over the elements it finds, there is no order
assumption. So the bug is triggering because of an unexpected
interaction.
To tell what that is I need to reproduce the problem locally
Cheers
Andrea
–
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.