Does Neo4j Spatial Support WFS-T via Geoserver?

229 views
Skip to first unread message

Geolama

unread,
Mar 6, 2012, 3:41:15 PM3/6/12
to Neo4j
Is this a current capability?

Peter Neubauer

unread,
Mar 6, 2012, 4:07:25 PM3/6/12
to ne...@googlegroups.com

Mmh,

Neo4j Spatial implements the writing support, see https://github.com/neo4j/spatial/blob/master/src/main/java/org/geotools/data/neo4j/Neo4jSpatialDataStore.java#L217 but I have not tested it lately. Feel free to give it a spin!

/peter

On Mar 6, 2012 9:41 PM, "Geolama" <the.g...@gmail.com> wrote:
Is this a current capability?

Craig Taverner

unread,
Mar 6, 2012, 4:52:32 PM3/6/12
to ne...@googlegroups.com
The old wiki used to have instructions on how to get neo4j-spatial working in geoserver, but that wiki no longer exists. Peter, is it possible to dig those instructions out of the archives and put them somewhere?

Peter Neubauer

unread,
Mar 7, 2012, 3:04:23 AM3/7/12
to ne...@googlegroups.com
It's in the README now, see

https://github.com/neo4j/spatial and scroll down a bit :)

Cheers,

/peter neubauer

G:  neubauer.peter
S:  peter.neubauer
P:  +46 704 106975
L:   http://www.linkedin.com/in/neubauer
T:   @peterneubauer

Neo4j 1.6 released                 - dzone.com/6S4K
The Neo4j Heroku Challenge   - http://neo4j-challenge.herokuapp.com/

Geolama

unread,
Mar 9, 2012, 1:07:57 PM3/9/12
to Neo4j
I followed the Neo4j Spatial instructions for using Geoserver 2.1.1
but Neo4j does not show up as a Vector data source nor are there any
errors in the catalina.out file to indicate why. Now, I tried this
with an older instance of Geoserver at 2.1.0 and Neo4j shows up as a
Vector data source but when trying to save the information for the
Neo4j Spatial db file (directory) I get the following error in the
catalina.out:

Mar 9, 2012 5:18:06 PM org.apache.catalina.core.StandardWrapperValve
invoke
SEVERE: Servlet.service() for servlet dispatcher threw exception
java.lang.ClassNotFoundException: javax.transaction.TransactionManager
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:
1358)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:
1204)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:
141)
at
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:
1817)
at
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:
872)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:
1325)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:
1204)
at
org.neo4j.kernel.EmbeddedGraphDbImpl.newTxModule(EmbeddedGraphDbImpl.java:
222)
at
org.neo4j.kernel.EmbeddedGraphDbImpl.<init>(EmbeddedGraphDbImpl.java:
111)
at
org.neo4j.kernel.EmbeddedGraphDatabase.<init>(EmbeddedGraphDatabase.java:
80)
at
org.neo4j.kernel.EmbeddedGraphDatabase.<init>(EmbeddedGraphDatabase.java:
64)
at
org.geotools.data.neo4j.Neo4jSpatialDataStoreFactory.createDataStore(Neo4jSpatialDataStoreFactory.java:
78)
at
org.geotools.data.neo4j.Neo4jSpatialDataStoreFactory.createDataStore(Neo4jSpatialDataStoreFactory.java:
38)
at
org.vfny.geoserver.util.DataStoreUtils.getDataAccess(DataStoreUtils.java:
107)
at org.geoserver.catalog.ResourcePool.getDataStore(ResourcePool.java:
343)
at
org.geoserver.catalog.impl.DataStoreInfoImpl.getDataStore(DataStoreInfoImpl.java:
37)
at
org.geoserver.web.data.store.DataAccessNewPage.onSaveDataStore(DataAccessNewPage.java:
87)
at org.geoserver.web.data.store.AbstractDataAccessPage
$1.onSubmit(AbstractDataAccessPage.java:159)
at org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink
$1.onSubmit(AjaxSubmitLink.java:68)
at
org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:
143)
at
org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:
177)
at
org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:
300)
at
org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:
119)
at
org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:
92)
at
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:
1250)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
at
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:
484)
at
org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:
160)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at
org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:
158)
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:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
206)
at
org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:
23)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
206)
at org.geoserver.filters.SpringDelegatingFilter
$Chain.doFilter(SpringDelegatingFilter.java:68)
at
org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:
101)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.geoserver.filters.SpringDelegatingFilter
$Chain.doFilter(SpringDelegatingFilter.java:64)
at
org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:
101)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.geoserver.filters.SpringDelegatingFilter
$Chain.doFilter(SpringDelegatingFilter.java:64)
at
org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(BasicProcessingFilter.java:
174)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.geoserver.filters.SpringDelegatingFilter
$Chain.doFilter(SpringDelegatingFilter.java:64)
at
org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:
105)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.geoserver.filters.SpringDelegatingFilter
$Chain.doFilter(SpringDelegatingFilter.java:64)
at
org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:
116)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.geoserver.filters.SpringDelegatingFilter
$Chain.doFilter(SpringDelegatingFilter.java:64)
at
org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:
91)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.geoserver.filters.SpringDelegatingFilter
$Chain.doFilter(SpringDelegatingFilter.java:64)
at
org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:
278)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.geoserver.filters.SpringDelegatingFilter
$Chain.doFilter(SpringDelegatingFilter.java:64)
at
org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:
89)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.geoserver.filters.SpringDelegatingFilter
$Chain.doFilter(SpringDelegatingFilter.java:64)
at
org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:
192)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.geoserver.filters.SpringDelegatingFilter
$Chain.doFilter(SpringDelegatingFilter.java:64)
at
org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:
192)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.geoserver.filters.SpringDelegatingFilter
$Chain.doFilter(SpringDelegatingFilter.java:64)
at
org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:
99)
at
org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:
83)
at org.geoserver.filters.SpringDelegatingFilter
$Chain.doFilter(SpringDelegatingFilter.java:64)
at
org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:
99)
at
org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:
83)
at org.geoserver.filters.SpringDelegatingFilter
$Chain.doFilter(SpringDelegatingFilter.java:64)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:394)
at
org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:
99)
at
org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:
83)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:
101)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:
105)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:
116)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:
91)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:
278)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:
89)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:
192)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:
185)
at org.geoserver.filters.SpringDelegatingFilter
$Chain.doFilter(SpringDelegatingFilter.java:64)
at
org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:
39)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
206)
at
org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:
49)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
206)
at
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:
109)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
206)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:394)
at
org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:
109)
at
org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:
83)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:
101)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:
105)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:
116)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:
91)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:
278)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:
89)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:
235)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:
185)
at
org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:
99)
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:
71)
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.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:
46)
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:
175)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
128)
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:
263)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
844)
at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:
447)
at java.lang.Thread.run(Thread.java:662)

Peter Neubauer

unread,
Mar 9, 2012, 2:52:03 PM3/9/12
to ne...@googlegroups.com

Mmh,
Seems JTA is missing from the classpath. We should get an automated GeoServer test up. I can look at it next week if you remind me and raise an issue? Try to get all neo4j core jars on the class path to start with (everything in the lib folder of the distribution)?

Geolama

unread,
Mar 9, 2012, 5:07:44 PM3/9/12
to Neo4j
Got everything working as far as Geoserver serving up data as either a
WMS or WFS and Quantum GIS can open up the WFS layer and show
attribution. However, the WFS-T isn't enabled because the Neo4j
Spatial database does not tell Geoserver (via GeoTools, I think) which
field is the Primary Key for transactions.

Geolama

On Mar 9, 11:52 am, Peter Neubauer <neubauer.pe...@gmail.com> wrote:
> Mmh,
> Seems JTA is missing from the classpath. We should get an automated
> GeoServer test up. I can look at it next week if you remind me and raise an
> issue? Try to get all neo4j core jars on the class path to start with
> (everything in the lib folder of the distribution)?
> ...
>
> read more »

Geolama

unread,
Mar 9, 2012, 5:15:34 PM3/9/12
to Neo4j
The Neo4j Spatial db that I got to work in Geoserver was built from a
shapefile using the basic ShapeImporter class.

I have also created a Geoserver data store using a Neo4j Spatial db
built from Open Street Map data using OSMImporter. This data store
loads fine but does not show that there are any geospatial layers to
be published via OGC Web Services. Is this proper behavior for OSM-
based Neo4j Spatial dbs or is this a flaw?
> ...
>
> read more »

Peter Neubauer

unread,
Mar 9, 2012, 5:46:44 PM3/9/12
to ne...@googlegroups.com

Mmh,
The osm layers should show. I can test it once I have slept a bit, tomorrow European time :-)

Peter Neubauer

unread,
Mar 12, 2012, 10:33:46 AM3/12/12
to ne...@googlegroups.com
Weldon,
will try to set it up now. If I get it working and live to tell you,
do you have any clue how to deploy a GeoServer setup as part of a unit
test in order to automate this?

/peter

Geolama

unread,
Mar 12, 2012, 10:50:32 AM3/12/12
to Neo4j
Have you ever used the Geoserver REST API? You can use it to create
data stores, publish layers, etc. The Geoserver website has examples
using curl and php. I have used the curl/REST method to publish over
two hundred layers from PostGIS database tables. The REST API is
fairly mature these days.

Hope this helps,

Geolama

On Mar 12, 7:33 am, Peter Neubauer <neubauer.pe...@gmail.com> wrote:
> Weldon,
> will try to set it up now. If I get it working and live to tell you,
> do you have any clue how to deploy a GeoServer setup as part of a unit
> test in order to automate this?
>
> /peter
>
> On Fri, Mar 9, 2012 at 11:46 PM, Peter Neubauer
>
>
>
>
>
>
>
> <neubauer.pe...@gmail.com> wrote:
> > Mmh,
> > The osm layers should show. I can test it once I have slept a bit, tomorrow
> > European time :-)
>
> > On Mar 9, 2012 11:15 PM, "Geolama" <the.geol...@gmail.com> wrote:
>
> >> The Neo4j Spatial db that I got to work in Geoserver was built from a
> >> shapefile using the basic ShapeImporter class.
>
> >> I have also created a Geoserver data store using a Neo4j Spatial db
> >> built from Open Street Map data using OSMImporter. This data store
> >> loads fine but does not show that there are any geospatial layers to
> >> be published via OGC Web Services. Is this proper behavior for OSM-
> >> based Neo4j Spatial dbs or is this a flaw?
>
> >> On Mar 9, 2:07 pm, Geolama <the.geol...@gmail.com> wrote:
> >> > Got everything working as far as Geoserver serving up data as either a
> >> > WMS or WFS and Quantum GIS can open up the WFS layer and show
> >> > attribution. However, theWFS-Tisn't enabled because the Neo4j
> ...
>
> read more »

Peter Neubauer

unread,
Mar 12, 2012, 10:53:52 AM3/12/12
to ne...@googlegroups.com

Yes,
That is good for testing. But we need to fire up the server with the neo4j store deployed in the setup part of the year :-)

Geolama

unread,
Mar 12, 2012, 10:56:13 AM3/12/12
to Neo4j
By 'year' do you mean 'war' file?

On Mar 12, 7:53 am, Peter Neubauer <neubauer.pe...@gmail.com> wrote:
> Yes,
> That is good for testing. But we need to fire up the server with the neo4j
> store deployed in the setup part of the year :-)
> ...
>
> read more »

Peter Neubauer

unread,
Mar 12, 2012, 11:01:56 AM3/12/12
to ne...@googlegroups.com

Oh,
I meant test. Not sure if a war or some integrated startup with all GeoServer dependencies om the classpath would be the best...

Weldon Wiyninger

unread,
Mar 12, 2012, 11:38:11 AM3/12/12
to ne...@googlegroups.com
The image below is a screen capture of the geoserver-trunk from Subversion on Sourceforge. To include your own data into the release configuration, you would have to have a working Neo4j Spatial instance in Geoserver complete with the workspace that contains Neo4j Spatial data store(s) and of course under the data directory the subdirectory tree containing the actual Neo4j Spatial db(s). You place the workspace into the geoserver-trunk/data/release/workspaces directory and the subdirectory with the Neo4j Spatial db(s) into the geoserver-trunk/data/release/data directory. And then follow the instructions for the Maven Building the Web Module.

Geolama


Inline image 1
image.png

Geolama

unread,
Mar 12, 2012, 4:51:57 PM3/12/12
to Neo4j
I was able to solve my problem with the OSM-based Neo4j Spatial
database. I had performed the batch insert but forgot to re-index the
data. Once I did that the layer displayed immediately. Now all that is
left to determine how to enable the WFS-T on Neo4j Spatial dbs.

Geolama

On Mar 12, 8:38 am, Weldon Wiyninger <the.geol...@gmail.com> wrote:
> The image below is a screen capture of the *geoserver-trunk* from
> Subversion on Sourceforge. To include your own data into the
> *release*configuration, you would have to have a working Neo4j Spatial
> instance in
> Geoserver complete with the workspace that contains Neo4j Spatial data
> store(s) and of course under the *data* directory the subdirectory tree
> containing the actual Neo4j Spatial db(s). You place the workspace into the
> *geoserver-trunk/data/release/workspaces* directory and the subdirectory
> with the Neo4j Spatial db(s) into the
> *geoserver-trunk/data/release/data*directory. And then follow the
> instructions for the Maven
> Building the Web
> Module<http://docs.geoserver.org/stable/en/developer/maven-guide/index.html#...>.
>
> Geolama
>
> [image: Inline image 1]
>
>  image.png
> 119KViewDownload

Peter Neubauer

unread,
Mar 12, 2012, 4:54:43 PM3/12/12
to ne...@googlegroups.com

Great!
Let me know if you need help. I am not an expert in GeoServer but have a test running now and could factor in what you need.

Geolama

unread,
Mar 12, 2012, 5:33:46 PM3/12/12
to Neo4j
In order for Geoserver to enable a WFS layer for WFS Transactional,
the layer must have a unique, non-NULL integer/long field to be used
as the Primary Key. So Neo4j Spatial is not reporting a field that
meets these requirements so that Geoserver can allow transactions on
the layer even though GeoTools would be able to edit the data
directly.

Geolama

On Mar 12, 1:54 pm, Peter Neubauer <neubauer.pe...@gmail.com> wrote:
> Great!
> Let me know if you need help. I am not an expert in GeoServer but have a
> test running now and could factor in what you need.

Geolama

unread,
Mar 12, 2012, 6:44:20 PM3/12/12
to Neo4j
Below is an excerpt from the catalina.out file when attempting to use
WFS-T to update a feature in Neo4j Spatial via Geoserver:


getFeatureReader(Tehran,class org.geotools.filter.FidFilterImpl
[ 217902 ])
12 Mar 22:33:38 WARN [gwc.GWCTransactionListener] - Error pre
computing the transaction's affected area
java.lang.NullPointerException
at org.neo4j.gis.spatial.LayerRTreeIndex.get(LayerRTreeIndex.java:64)
at org.neo4j.gis.spatial.LayerRTreeIndex.get(LayerRTreeIndex.java:75)
at
org.geotools.data.neo4j.Neo4jSpatialDataStore.getFeatureReader(Neo4jSpatialDataStore.java:
328)
at
org.geotools.data.neo4j.Neo4jSpatialDataStore.getFeatureReader(Neo4jSpatialDataStore.java:
305)
at
org.geotools.data.AbstractDataStore.getFeatureReader(AbstractDataStore.java:
369)
at
org.geotools.data.DefaultFeatureResults.boundsReader(DefaultFeatureResults.java:
242)
at
org.geotools.data.DefaultFeatureResults.getBounds(DefaultFeatureResults.java:
282)
at
org.geotools.feature.collection.DecoratingSimpleFeatureCollection.getBounds(DecoratingSimpleFeatureCollection.java:
136)
at
org.geotools.data.crs.ForceCoordinateSystemFeatureResults.getBounds(ForceCoordinateSystemFeatureResults.java:
130)
at
org.geoserver.gwc.GWCTransactionListener.dataStoreChangeInternal(GWCTransactionListener.java:
213)
at
org.geoserver.gwc.GWCTransactionListener.dataStoreChange(GWCTransactionListener.java:
180)
at org.geoserver.wfs.Transaction
$TransactionListenerMux.dataStoreChange(Transaction.java:623)
at org.geoserver.wfs.Transaction
$TransactionListenerMux.dataStoreChange(Transaction.java:629)
at
org.geoserver.wfs.UpdateElementHandler.execute(UpdateElementHandler.java:
224)
at org.geoserver.wfs.Transaction.execute(Transaction.java:333)
at org.geoserver.wfs.Transaction.transaction(Transaction.java:108)
at
org.geoserver.wfs.DefaultWebFeatureService.transaction(DefaultWebFeatureService.java:
162)
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.RequestObjectLogger.invoke(RequestObjectLogger.java:
51)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:
171)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:
204)
at $Proxy24.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:630)
at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:
234)
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:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
304)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at
org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:
23)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at org.geoserver.filters.SpringDelegatingFilter
$Chain.doFilter(SpringDelegatingFilter.java:74)
at
org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:
45)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at
org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:
49)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:
109)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:394)
at
org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:
109)
at
org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:
83)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:
101)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:
105)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(BasicProcessingFilter.java:
174)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:
235)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:
185)
at
org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:
99)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:
71)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at
org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:
183)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at
org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:
46)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
224)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
169)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:
472)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
168)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
100)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
929)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
118)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
405)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:
964)
at org.apache.coyote.AbstractProtocol
$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.AprEndpoint
$SocketWithOptionsProcessor.run(AprEndpoint.java:1782)
at java.util.concurrent.ThreadPoolExecutor
$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor
$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
getFeatureReader(Tehran,class org.geotools.filter.FidFilterImpl
[ 217902 ])
12 Mar 22:33:38 ERROR [geoserver.ows] -
org.geoserver.wfs.WFSException: java.lang.NullPointerException
at org.geoserver.wfs.Transaction.transaction(Transaction.java:114)
at
org.geoserver.wfs.DefaultWebFeatureService.transaction(DefaultWebFeatureService.java:
162)
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.RequestObjectLogger.invoke(RequestObjectLogger.java:
51)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:
171)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:
204)
at $Proxy24.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:630)
at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:
234)
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:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
304)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at
org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:
23)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at org.geoserver.filters.SpringDelegatingFilter
$Chain.doFilter(SpringDelegatingFilter.java:74)
at
org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:
45)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at
org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:
49)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:
109)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:394)
at
org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:
109)
at
org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:
83)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:
101)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:
105)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(BasicProcessingFilter.java:
174)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:
235)
at
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
53)
at org.springframework.security.util.FilterChainProxy
$VirtualFilterChain.doFilter(FilterChainProxy.java:406)
at
org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:
185)
at
org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:
99)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:
71)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at
org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:
183)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at
org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:
46)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
210)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
224)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
169)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:
472)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
168)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
100)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
929)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
118)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
405)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:
964)
at org.apache.coyote.AbstractProtocol
$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.AprEndpoint
$SocketWithOptionsProcessor.run(AprEndpoint.java:1782)
at java.util.concurrent.ThreadPoolExecutor
$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor
$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NullPointerException
at org.neo4j.gis.spatial.LayerRTreeIndex.get(LayerRTreeIndex.java:64)
at org.neo4j.gis.spatial.LayerRTreeIndex.get(LayerRTreeIndex.java:75)
at
org.geotools.data.neo4j.Neo4jSpatialDataStore.getFeatureReader(Neo4jSpatialDataStore.java:
328)
at
org.geotools.data.neo4j.Neo4jSpatialDataStore.getFeatureReader(Neo4jSpatialDataStore.java:
305)
at
org.geotools.data.AbstractDataStore.getFeatureReader(AbstractDataStore.java:
369)
at
org.geotools.data.DefaultFeatureResults.reader(DefaultFeatureResults.java:
214)
at
org.geotools.data.store.DataFeatureCollection.openIterator(DataFeatureCollection.java:
230)
at
org.geotools.data.store.DataFeatureCollection.iterator(DataFeatureCollection.java:
198)
at
org.geoserver.feature.RetypingFeatureCollection.iterator(RetypingFeatureCollection.java:
44)
at
org.geoserver.feature.RetypingFeatureCollection.features(RetypingFeatureCollection.java:
53)
at
org.geoserver.feature.RetypingFeatureCollection.features(RetypingFeatureCollection.java:
30)
at
org.geotools.data.crs.ForceCoordinateSystemFeatureResults.openIterator(ForceCoordinateSystemFeatureResults.java:
95)
at
org.geotools.feature.collection.AbstractFeatureCollection.iterator(AbstractFeatureCollection.java:
343)
at
org.geoserver.wfs.UpdateElementHandler.execute(UpdateElementHandler.java:
226)
at org.geoserver.wfs.Transaction.execute(Transaction.java:333)
at org.geoserver.wfs.Transaction.transaction(Transaction.java:108)
... 87 more

Peter Neubauer

unread,
Mar 12, 2012, 6:46:25 PM3/12/12
to ne...@googlegroups.com
Mmh,
what Integer do you think would be best to get that going? The ID of
the geometry node? Would be great if you could implement it with a
test?

Cheers,

/peter neubauer

G:  neubauer.peter
S:  peter.neubauer
P:  +46 704 106975
L:   http://www.linkedin.com/in/neubauer
T:   @peterneubauer

Neo4j 1.6 released                 - dzone.com/6S4K
The Neo4j Heroku Challenge   - http://neo4j-challenge.herokuapp.com/

Weldon Wiyninger

unread,
Mar 12, 2012, 6:59:04 PM3/12/12
to ne...@googlegroups.com
Which type of Neo4j Spatial OSM Node type would make the easiest to traverse to all the related Node types that make up an OSM Feature? That would be the Node ID to use as from it you can find all the Tags, Relation, etc.

Geolama

Geolama

unread,
Mar 13, 2012, 12:14:35 AM3/13/12
to Neo4j
I think you are correct: the OSM Geometry Node's ID would be the one
to use. Even though some changes may only be to OSM Tags and not the
geometry itself.

Geolama

On Mar 12, 3:59 pm, Weldon Wiyninger <the.geol...@gmail.com> wrote:
> Which type of Neo4j Spatial OSM Node type would make the easiest to
> traverse to all the related Node types that make up an OSM Feature? That
> would be the Node ID to use as from it you can find all the Tags, Relation,
> etc.
>
> Geolama
>
> On Mon, Mar 12, 2012 at 3:46 PM, Peter Neubauer <
>
>
>
>
>
>
>
> peter.neuba...@neotechnology.com> wrote:
> > Mmh,
> > what Integer do you think would be best to get that going? The ID of
> > the geometry node? Would be great if you could implement it with a
> > test?
>
> > Cheers,
>
> > /peter neubauer
>
> > G:  neubauer.peter
> > S:  peter.neubauer
> > P:  +46 704 106975
> > L:  http://www.linkedin.com/in/neubauer
> > T:   @peterneubauer
>
> > Neo4j 1.6 released                 - dzone.com/6S4K
> > The Neo4j Heroku Challenge   -http://neo4j-challenge.herokuapp.com/
> > org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHtt p(BasicProcessingFilter.java:
> > > 174)
> > >        at
>
> > org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurit yFilter.java:
> > > 53)
> > >        at org.springframework.security.util.FilterChainProxy
> > > $VirtualFilterChain.doFilter(FilterChainProxy.java:406)
> > >        at
>
> > org.springframework.security.context.HttpSessionContextIntegrationFilter.do FilterHttp(HttpSessionContextIntegrationFilter.java:
> > > 235)
> > >        at
>
> > org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurit yFilter.java:
> > > 53)
> > >        at org.springframework.security.util.FilterChainProxy
> > > $VirtualFilterChain.doFilter(FilterChainProxy.java:406)
> > >        at
>
> > org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProx y.java:
> > > 185)
> > >        at
>
> > org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanPr oxy.java:
> > > 99)
> > >        at
>
> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicatio nFilterChain.java:
> > > 243)
> > >        at
>
> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterC hain.java:
> > > 210)
> > >        at
> > org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:
> > > 71)
> > >        at
>
> ...
>
> read more »

Peter Neubauer

unread,
Mar 13, 2012, 4:27:24 AM3/13/12
to ne...@googlegroups.com
Yes.
I think that is implementable, but I have too little time. Do you feel
like looking into it? Basically, this would be to be able to change
topologies at all and update the RTree accordingly ...

Cheers,

/peter neubauer

G:  neubauer.peter
S:  peter.neubauer
P:  +46 704 106975
L:   http://www.linkedin.com/in/neubauer
T:   @peterneubauer

Neo4j 1.6 released                 - dzone.com/6S4K

The Neo4j Heroku Challenge   - http://neo4j-challenge.herokuapp.com/

Geolama

unread,
Mar 13, 2012, 2:50:59 PM3/13/12
to Neo4j
Unfortunately, for our customer if we were to develop this capability
then we only share it with them and would not be able to make it
available to the community.

Geolama

On Mar 13, 1:27 am, Peter Neubauer <peter.neuba...@neotechnology.com>
wrote:
> Yes.
> I think that is implementable, but I have too little time. Do you feel
> like looking into it? Basically, this would be to be able to change
> topologies at all and update the RTree accordingly ...
>
> Cheers,
>
> /peter neubauer
>
> G:  neubauer.peter
> S:  peter.neubauer
> P:  +46 704 106975
> L:   http://www.linkedin.com/in/neubauer
> T:   @peterneubauer
>
> Neo4j 1.6 released                 - dzone.com/6S4K
> The Neo4j Heroku Challenge   -http://neo4j-challenge.herokuapp.com/
> ...
>
> read more »
Reply all
Reply to author
Forward
0 new messages