Justin,

here is the listing of the data_dir/data directory before the excution of

curl -v -u admin:geoserver -XPUT --header 'Content-type: application/zip'
--data-binary @fe_2007_01001_edges.zip
http://localhost:8080/geoserver/rest/workspaces/roads/datastores/fe_2007_01001_edges/file.shp

command:

C:\Program Files\GeoServer 2.0.0\data_dir\data>dir /s/w/o/p
 Volume in drive C is OSDisk
 Volume Serial Number is 907C-9CD2

 Directory of C:\Program Files\GeoServer 2.0.0\data_dir\data

[.]  [..]
               0 File(s)              0 bytes

     Total Files Listed:
               0 File(s)              0 bytes
               2 Dir(s)  31,512,698,880 bytes free

C:\Program Files\GeoServer 2.0.0\data_dir\data>

After executing the command I get the following:
C:\Program Files\GeoServer 2.0.0\data_dir\data>dir /s/w/o/p
 Volume in drive C is OSDisk
 Volume Serial Number is 907C-9CD2

 Directory of C:\Program Files\GeoServer 2.0.0\data_dir\data

[.]                   [..]                  [fe_2007_01001_edges]
               0 File(s)              0 bytes

 Directory of C:\Program Files\GeoServer
2.0.0\data_dir\data\fe_2007_01001_edges


[.]                       [..]                      fe_2007_01001_edges.shp
               1 File(s)      3,361,720 bytes

     Total Files Listed:
               1 File(s)      3,361,720 bytes
               5 Dir(s)  31,509,241,856 bytes free


Also I tried another zip file and I get the same results. Also I tried
Geoserver 1.7.6  (with the corresponding version of  REST jar) and got
exactly the same exception.

BTW, how am I supposed to install REST jar - I just copied the
restconfig-?.?.?.jar to the webapps\geoserver\WEB-INF\lib folder  ?

Thanks,

Andy




On Tue, Dec 29, 2009 at 6:33 PM, Justin Deoliveira <[email protected]>wrote:

> Hmmm... strange the requests look fine to me. Can you show me the contents
> of the data_dir/data directory before and after the upload, a recursive
> listing if possible.
>
>
> Andy Burgard wrote:
>
>> Justin,
>>
>> thanks for the help.Here are the cURL commands I am submitting:
>>
>> curl -u admin:geoserver -v -XPOST -H "Content-type: text/xml" -d
>> "<workspace><name>roads</name></workspace>"
>> http://localhost:8080/geoserver/rest/workspaces
>>
>> curl -XGET http://localhost:8080/geoserver/rest/workspaces/roads.xml
>>
>> I get the following at this point:
>>
>> /workspaces/roads.xml
>> <workspace>
>>  <name>roads</name>
>>  <dataStores>
>>    <atom:link xmlns:atom="http://www.w3.org/2005/Atom"; rel="alternate"
>> href="ht
>> tp://localhost:8080/geoserver/rest/workspaces/roads/datastores.xml"
>> type="applic
>> ation/xml"/>
>>  </dataStores>
>>  <coverageStores>
>>    <atom:link xmlns:atom="http://www.w3.org/2005/Atom"; rel="alternate"
>> href="ht
>> tp://localhost:8080/geoserver/rest/workspaces/roads/coveragestores.xml"
>> type="ap
>> plication/xml"/>
>>  </coverageStores>
>> </workspace>
>>
>> Next I do:
>>
>> curl -v -u admin:geoserver -XPUT --header 'Content-type: application/zip'
>> --data-binary @fe_2007_01001_edges.zip
>> http://localhost:8080/geoserver/rest/workspaces/roads/datastores/fe_2007_01001_edges/file.shp
>>
>> That's when I get the exception I posted in my original email. Here
>> fe_2007_01001_edges.zip is a zip file that contains a fe_2007_01001_edges
>> shapefile. The file is taken  from TIGER/Line dataset.
>>
>> Thanks,
>>
>> Andy
>>
>>
>> On Tue, Dec 29, 2009 at 11:34 AM, Justin Deoliveira 
>> <[email protected]<mailto:
>> [email protected]>> wrote:
>>
>>    Hi Andy,
>>
>>    First I would try clearing out any directories under data_dir/data
>>    that were created by previous upload attempts. Then try again and
>>    capture the log of the first attempt. It would also be helpful to
>>    have the exact cURL request that you are making.
>>
>>    A common mistake is not setting the content-type properly to
>>    application/zip.
>>
>>    -Jusitn
>>
>>    Andy Burgard wrote:
>>
>>        Hello everybody,
>>
>>        I am trying to repeat the steps in the REST Configuration
>>        Examples as outlined here:
>>
>> http://docs.geoserver.org/2.0.0/user/extensions/rest/rest-config-examples-curl.html
>>
>>        I failed to accomplish "Upload a Shapefile" step - I can see the
>>        attached exception thrown in the GeoServer console.
>>
>>        It looks like GeoTools is trying to locate an shx file in the
>>        destination folder before it copied it there.
>>
>>        I am using GeoServer 2.0.0 running on Windows XP. Any ideas what
>>        is going on?
>>
>>        Thanks,
>>
>>        Andy
>>
>>
>>
>>        27 Dec 19:13:38 INFO [catalog.rest] - PUT file, mimetype:
>>        application/x-www-form
>>        -urlencoded
>>        27 Dec 19:13:38 INFO [catalog.rest] - Using existing datastore:
>>        fe_2007_010001_e
>>        dges
>>        27 Dec 19:13:38 WARN [shapefile.sh] - Could not open the .shx
>>        file, continuing a
>>        ssuming the .shp file is not sparse
>>        java.io.FileNotFoundException: C:\Program Files\GeoServer
>>        2.0.0\data_dir\data\fe
>>        _2007_010001_edges\fe_2007_010001_edges.shx
>>               at
>>
>>  org.geotools.data.shapefile.ShpFiles.getReadChannel(ShpFiles.java:821)
>>               at
>>        org.geotools.data.shapefile.shp.IndexFile.<init>(IndexFile.java:78)
>>               at
>>
>>  
>> org.geotools.data.shapefile.shp.ShapefileReader.<init>(ShapefileReader.java:215)
>>               at
>>
>>  
>> org.geotools.data.shapefile.ShapefileDataStore.openShapeReader(ShapefileDataStore.java:453)
>>               at
>>
>>  
>> org.geotools.data.shapefile.ShapefileDataStore.readAttributes(ShapefileDataStore.java:680)
>>               at
>>
>>  
>> org.geotools.data.shapefile.ShapefileDataStore.getSchema(ShapefileDataStore.java:638)
>>               at
>>
>>  
>> org.geotools.data.shapefile.ShapefileDataStore.getSchema(ShapefileDataStore.java:632)
>>               at
>>
>>  
>> org.geotools.data.shapefile.ShapefileDataStore.getFeatureSource(ShapefileDataStore.java:964)
>>               at
>>
>>  
>> org.geoserver.catalog.rest.DataStoreFileResource.handlePut(DataStoreFileResource.java:220)
>>               at org.restlet.Finder.handle(Finder.java:298)
>>               at
>>
>>  
>> org.geoserver.rest.BeanDelegatingRestlet.handle(BeanDelegatingRestlet.java:38)
>>               at org.restlet.Filter.doHandle(Filter.java:105)
>>               at org.restlet.Filter.handle(Filter.java:134)
>>               at org.restlet.Router.handle(Router.java:444)
>>               at
>>
>>  
>> com.noelios.restlet.ext.servlet.ServletConverter.service(ServletConverter.java:129)
>>               at
>>
>>  
>> org.geoserver.rest.RESTDispatcher.handleRequestInternal(RESTDispatcher.java:79)
>>               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.doPut(FrameworkServlet.java:521)
>>               at
>>        javax.servlet.http.HttpServlet.service(HttpServlet.java:730)
>>               at
>>        javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>>               at
>>
>>  org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
>>               at
>>
>>  
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
>>               at
>>
>>  
>> org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
>>               at
>>
>>  
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>>               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.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>>               at
>>        org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
>>               at
>>
>>  
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>>               at
>>
>>  
>> org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:183)
>>               at
>>
>>  
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>>               at
>>        org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:47)
>>               at
>>
>>  
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>>               at
>>
>>  org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
>>               at
>>
>>  org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>>               at
>>
>>  org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>>               at
>>
>>  org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
>>               at
>>
>>  org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
>>
>>               at
>>
>>  
>> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
>>               at
>>
>>  
>> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
>>               at
>>
>>  org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>>               at org.mortbay.jetty.Server.handle(Server.java:324)
>>               at
>>
>>  org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
>>               at
>>
>>  
>> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842)
>>               at
>>        org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
>>               at
>>        org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)
>>               at
>>        org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
>>               at
>>
>>  org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
>>               at
>>
>>  
>> org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
>>        27 Dec 19:13:38 ERROR [geoserver.rest] -
>>        java.lang.RuntimeException: java.io.IOException: Wrong magic
>>        number, expected 9994, got 1347093252
>>               at
>>
>>  
>> org.geoserver.catalog.rest.DataStoreFileResource.handlePut(DataStoreFileResource.java:253)
>>               at org.restlet.Finder.handle(Finder.java:298)
>>               at
>>
>>  
>> org.geoserver.rest.BeanDelegatingRestlet.handle(BeanDelegatingRestlet.java:38)
>>               at org.restlet.Filter.doHandle(Filter.java:105)
>>               at org.restlet.Filter.handle(Filter.java:134)
>>               at org.restlet.Router.handle(Router.java:444)
>>               at
>>
>>  
>> com.noelios.restlet.ext.servlet.ServletConverter.service(ServletConverter.java:129)
>>               at
>>
>>  
>> org.geoserver.rest.RESTDispatcher.handleRequestInternal(RESTDispatcher.java:79)
>>               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.doPut(FrameworkServlet.java:521)
>>               at
>>        javax.servlet.http.HttpServlet.service(HttpServlet.java:730)
>>               at
>>        javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>>               at
>>
>>  org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
>>               at
>>
>>  
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
>>               at
>>
>>  
>> org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
>>               at
>>
>>  
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>>               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.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>>               at
>>        org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
>>               at
>>
>>  
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>>               at
>>
>>  
>> org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:183)
>>               at
>>
>>  
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>>               at
>>        org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:47)
>>               at
>>
>>  
>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>>               at
>>
>>  org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
>>               at
>>
>>  org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>>               at
>>
>>  org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>>               at
>>
>>  org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
>>               at
>>
>>  org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
>>
>>               at
>>
>>  
>> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
>>               at
>>
>>  
>> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
>>               at
>>
>>  org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>>               at org.mortbay.jetty.Server.handle(Server.java:324)
>>               at
>>
>>  org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
>>               at
>>
>>  
>> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842)
>>               at
>>        org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
>>               at
>>        org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)
>>               at
>>        org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
>>               at
>>
>>  org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
>>               at
>>
>>  
>> org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
>>        Caused by: java.io.IOException: Wrong magic number, expected
>>        9994, got 1347093252
>>               at
>>
>>  
>> org.geotools.data.shapefile.shp.ShapefileHeader.checkMagic(ShapefileHeader.java:53)
>>               at
>>
>>  
>> org.geotools.data.shapefile.shp.ShapefileHeader.read(ShapefileHeader.java:75)
>>               at
>>
>>  
>> org.geotools.data.shapefile.shp.ShapefileReader.readHeader(ShapefileReader.java:259)
>>               at
>>
>>  
>> org.geotools.data.shapefile.shp.ShapefileReader.init(ShapefileReader.java:309)
>>               at
>>
>>  
>> org.geotools.data.shapefile.shp.ShapefileReader.<init>(ShapefileReader.java:221)
>>               at
>>
>>  
>> org.geotools.data.shapefile.ShapefileDataStore.openShapeReader(ShapefileDataStore.java:453)
>>               at
>>
>>  
>> org.geotools.data.shapefile.ShapefileDataStore.readAttributes(ShapefileDataStore.java:680)
>>               at
>>
>>  
>> org.geotools.data.shapefile.ShapefileDataStore.getSchema(ShapefileDataStore.java:638)
>>               at
>>
>>  
>> org.geotools.data.shapefile.ShapefileDataStore.getSchema(ShapefileDataStore.java:632)
>>               at
>>
>>  
>> org.geotools.data.shapefile.ShapefileDataStore.getFeatureSource(ShapefileDataStore.java:964)
>>               at
>>
>>  
>> org.geoserver.catalog.rest.DataStoreFileResource.handlePut(DataStoreFileResource.java:220)
>>               ... 56 more
>>
>>
>>
>>  ------------------------------------------------------------------------
>>
>>
>>  
>> ------------------------------------------------------------------------------
>>        This SF.Net email is sponsored by the Verizon Developer Community
>>        Take advantage of Verizon's best-in-class app development support
>>        A streamlined, 14 day to market process makes app distribution
>>        fast and easy
>>        Join now and get one step closer to millions of Verizon customers
>>        http://p.sf.net/sfu/verizon-dev2dev
>>
>>
>>  ------------------------------------------------------------------------
>>
>>        _______________________________________________
>>        Geoserver-devel mailing list
>>        [email protected]
>>        <mailto:[email protected]>
>>
>>        https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>>
>>
>>    --    Justin Deoliveira
>>    OpenGeo - http://opengeo.org
>>    Enterprise support for open source geospatial.
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>>
>> ------------------------------------------------------------------------------
>> This SF.Net email is sponsored by the Verizon Developer Community
>> Take advantage of Verizon's best-in-class app development support
>> A streamlined, 14 day to market process makes app distribution fast and
>> easy
>> Join now and get one step closer to millions of Verizon customers
>> http://p.sf.net/sfu/verizon-dev2dev
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Geoserver-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>>
>
> --
> Justin Deoliveira
> OpenGeo - http://opengeo.org
> Enterprise support for open source geospatial.
>
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to