Hi list,
I'm trying to give my GeoServer 2.0.2 instance the abbility of serving gdal
formats. I've tried it following different guidelines, tuts,
geoserver_user_manual intructions but without success.
First, here is how I've got it set up.
OS: Windows Server 2003 R2 64Bit SP2
GeoServer: 2.0.2 (War file deployed over Tomcat)
Tomcat: 5.5
Java: JRE6 (64 Bit)
My first question/problem is, do I need to install the gdal-plugin for GS
2.0.2? If not, what's the purpose of it's existence? It's confusing.
Assuming that the official documentation is the one that appears in
geoserver.org [1], the instructions are these ones:
1. Navigate to the imageio-ext document and files download page[2].
2. Select the most recent stable binary release.
3. Select "native libraries".
4. Download and extract/install the correct version for your OS.
Note
If you are on Windows, make sure that the GDAL DLL files are on your
PATH. If you are on Linux, be sure to set the LD_LIBRARY_PATH environment
variable to be the folder where the SOs are extracted.
5. Select "libraries" from the last stable release root.
6. Download and extract the gdal_data-1.X.X archive.
Note
Make sure to set a GDAL_DATA environment variable to the folder where you
have extracted this file.
Once these steps have been completed, restart GeoServer. If done correctly, new
data formats will be in the Raster Data Sources list when creating a new data
store.
My questions are:
2. It doesn't matter what version?? GeoServer 2.0.2 has 1.0.5 image-io version
jars, if I choose another vesion I suppose it won't work so, which one do I
have to download??
- Following the instructions I select 1.1.0 version.
3. There are two different version for native librarires, which one do I have
to choose?? 1.4.5?? 1.7.3??
- Following the instructions I get the latest one. 1.7.3
I unzip them into my jre6/bin directory. Executing gdalinfo --formats returns:
C:\Program Files\Java\jre6\bin>gdalinfo --formats
Supported Formats:
ECW (rw): ERMapper Compressed Wavelets
JP2ECW (rw+): ERMapper JPEG2000
VRT (rw+v): Virtual Raster
GTiff (rw+v): GeoTIFF
NITF (rw+v): National Imagery Transmission Format
RPFTOC (ro): Raster Product Format TOC format
HFA (rw+v): Erdas Imagine Images (.img)
SAR_CEOS (ro): CEOS SAR Image
CEOS (ro): CEOS Image
JAXAPALSAR (ro): JAXA PALSAR Product Reader (Level 1.1/1.5)
GFF (rov): Ground-based SAR Applications Testbed File Format (.gff)
ELAS (rw+): ELAS
AIG (ro): Arc/Info Binary Grid
AAIGrid (rwv): Arc/Info ASCII Grid
SDTS (ro): SDTS Raster
DTED (rwv): DTED Elevation Raster
PNG (rwv): Portable Network Graphics
JPEG (rwv): JPEG JFIF
MEM (rw+): In Memory Raster
JDEM (ro): Japanese DEM (.mem)
GIF (rwv): Graphics Interchange Format (.gif)
BIGGIF (rov): Graphics Interchange Format (.gif)
ESAT (ro): Envisat Image Format
BSB (ro): Maptech BSB Nautical Charts
XPM (rw): X11 PixMap Format
BMP (rw+v): MS Windows Device Independent Bitmap
DIMAP (ro): SPOT DIMAP
AirSAR (ro): AirSAR Polarimetric Image
RS2 (ro): RadarSat 2 XML Product
PCIDSK (rw+v): PCIDSK Database File
PCRaster (rw): PCRaster Raster File
ILWIS (rw+v): ILWIS Raster Map
SGI (rw+): SGI Image File Format 1.0
SRTMHGT (rwv): SRTMHGT File Format
Leveller (rw+): Leveller heightfield
Terragen (rw+): Terragen heightfield
ISIS3 (ro): USGS Astrogeology ISIS cube (Version 3)
ISIS2 (ro): USGS Astrogeology ISIS cube (Version 2)
PDS (ro): NASA Planetary Data System
TIL (ro): EarthWatch .TIL
ERS (rw+): ERMapper .ers Labelled
L1B (ro): NOAA Polar Orbiter Level 1b Data Set
FIT (rw): FIT Image
GRIB (ro): GRIdded Binary (.grb)
MrSID (ro): Multi-resolution Seamless Image Database (MrSID)
JP2MrSID (ro): MrSID JPEG2000
RMF (rw+): Raster Matrix Format
MSGN (ro): EUMETSAT Archive native (.nat)
RST (rw+): Idrisi Raster A.1
INGR (rw+): Intergraph Raster
GSAG (rw): Golden Software ASCII Grid (.grd)
GSBG (rw+): Golden Software Binary Grid (.grd)
GS7BG (ro): Golden Software 7 Binary Grid (.grd)
COSAR (ro): COSAR Annotated Binary Matrix (TerraSAR-X)
TSX (ro): TerraSAR-X Product
COASP (ro): DRDC COASP SAR Processor Raster
R (rwv): R Object Data Store
PNM (rw+): Portable Pixmap Format (netpbm)
DOQ1 (ro): USGS DOQ (Old Style)
DOQ2 (ro): USGS DOQ (New Style)
ENVI (rw+v): ENVI .hdr Labelled
EHdr (rw+v): ESRI .hdr Labelled
GenBin (ro): Generic Binary (.hdr Labelled)
PAux (rw+): PCI .aux Labelled
MFF (rw+): Vexcel MFF Raster
MFF2 (rw+): Vexcel MFF2 (HKV) Raster
FujiBAS (ro): Fuji BAS Scanner Image
GSC (ro): GSC Geogrid
FAST (ro): EOSAT FAST Format
BT (rw+): VTP .bt (Binary Terrain) 1.3 Format
LAN (ro): Erdas .LAN/.GIS
CPG (ro): Convair PolGASP
IDA (rw+): Image Data and Analysis
NDF (ro): NLAPS Data Format
EIR (ro): Erdas Imagine Raw
DIPEx (ro): DIPEx
LCP (rov): FARSITE v.4 Landscape File (.lcp)
RIK (ro): Swedish Grid RIK (.rik)
USGSDEM (rw): USGS Optional ASCII DEM (and CDED)
GXF (ro): GeoSoft Grid Exchange Format
NWT_GRD (ro): Northwood Numeric Grid Format .grd/.tab
NWT_GRC (ro): Northwood Classified Grid Format .grc/.tab
ADRG (rw+v): ARC Digitized Raster Graphics
SRP (rov): Standard Raster Product (ASRP/USRP)
BLX (rw): Magellan topo (.blx)
SAGA (rw+v): SAGA GIS Binary Grid (.sdat)
5. According to the doc, I'll get 1.1.0 version
GDAL_DATA points to the directory where I extracted the lates compressed file.
I restart Tomcat, and when I visit the Add Data Stores web form nothing has
changed.
My logs show the followwing:
Tomcat logs:
Jul 14, 2011 1:48:05 PM it.geosolutions.imageio.gdalframework.GDALUtilities
loadGDAL
WARNING: Native library load failed.java.lang.UnsatisfiedLinkError: C:\Program
Files\Java\jre6\bin\gdaljni.dll: Can't load IA 32-bit .dll on a AMD 64-bit
platform
GeoServer logs:
14 Jul 13:48:20 DEBUG [org.geotools.gce.imagemosaic] - Unable to load kakadu
JPEG2000 reader spi
java.lang.ClassNotFoundException:
it.geosolutions.imageio.plugins.jp2k.JP2KKakaduImageReaderSpi
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1438)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1284)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at
org.geotools.gce.imagemosaic.ImageMosaicFormatFactory.JP2KAK(ImageMosaicFormatFactory.java:104)
at
org.geotools.gce.imagemosaic.ImageMosaicFormatFactory.<clinit>(ImageMosaicFormatFactory.java:60)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at sun.misc.Service$LazyIterator.next(Unknown Source)
at
org.geotools.factory.FactoryRegistry.register(FactoryRegistry.java:829)
at
org.geotools.factory.FactoryRegistry.scanForPlugins(FactoryRegistry.java:773)
at
org.geotools.factory.FactoryRegistry.scanForPlugins(FactoryRegistry.java:751)
at
org.geotools.coverage.grid.io.GridFormatFinder.scanForPlugins(GridFormatFinder.java:121)
at
org.geotools.coverage.grid.io.GridFormatFinder.getAvailableFormats(GridFormatFinder.java:84)
at
org.geotools.coverage.grid.io.GridFormatFinder.getFormatArray(GridFormatFinder.java:143)
at
org.geoserver.web.data.store.NewDataPage.getAvailableCoverageStores(NewDataPage.java:155)
at org.geoserver.web.data.store.NewDataPage.<init>(NewDataPage.java:45)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at
org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:186)
at
org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:57)
at
org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:272)
at
org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:293)
at
org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.processEvents(BookmarkablePageRequestTarget.java:210)
at
org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:91)
at
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1239)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1316)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1418)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:532)
at
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:356)
at
org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:124)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
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.doGet(FrameworkServlet.java:501)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
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.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at
org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at
org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at
org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
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:41)
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.coyote.http11.Http11Processor.process(Http11Processor.java:879)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
14 Jul 13:48:20 DEBUG [org.geotools.coverageio.gdal.jp2ecw] -
JP2ECWFormatFactory is not availaible.
14 Jul 13:48:20 DEBUG [org.geotools.coverageio.gdal.jp2mrisd] -
JP2MrSIDFormatFactory is not availaible.
14 Jul 13:48:20 DEBUG [org.geotools.coverageio.gdal.jp2k] - JP2KFormatFactory
is not availaible.
14 Jul 13:48:20 INFO [org.geotools.factory] - Factory implementations for
category GridFormatFactorySpi:
org.geotools.gce.arcgrid.ArcGridFormatFactory
org.geotools.gce.geotiff.GeoTiffFormatFactorySpi
org.geotools.gce.gtopo30.GTopo30FormatFactory
org.geotools.gce.image.WorldImageFormatFactory
org.geotools.coverageio.gdal.mrsid.MrSIDFormatFactory
org.geotools.coverageio.gdal.jp2kak.JP2KFormatFactory
org.geotools.coverageio.gdal.jp2mrsid.JP2MrSIDFormatFactory
org.geotools.coverageio.gdal.jp2ecw.JP2ECWFormatFactory
org.geotools.coverageio.gdal.ecw.ECWFormatFactory
org.geotools.coverageio.gdal.dted.DTEDFormatFactory
org.geotools.coverageio.gdal.erdasimg.ErdasImgFormatFactory
org.geotools.coverageio.gdal.nitf.NITFFormatFactory
org.geotools.coverageio.gdal.ehdr.EsriHdrFormatFactory
org.geotools.coverageio.gdal.envihdr.EnviHdrFormatFactory
org.geotools.coverageio.gdal.aig.AIGFormatFactory
org.geotools.gce.imagemosaic.ImageMosaicFormatFactory
14 Jul 13:48:20 DEBUG [org.geotools.coverageio.gdal.dted] - DTEDFormatFactory
is not availaible.
14 Jul 13:48:20 DEBUG [org.geotools.coverageio.gdal.ehdr] -
EsriHdrFormatFactory is not availaible.
14 Jul 13:48:20 DEBUG [org.geotools.coverageio.gdal.ecw] - ECWFormatFactory is
not availaible.
14 Jul 13:48:20 DEBUG [org.geotools.coverageio.gdal.jp2ecw] -
JP2ECWFormatFactory is not availaible.
14 Jul 13:48:20 DEBUG [org.geotools.coverageio.gdal.mrsid] - MrSIDFormatFactory
is not availaible.
14 Jul 13:48:20 DEBUG [org.geotools.gce.arcgrid] - ArcGridFormatFactory is
availaible.
14 Jul 13:48:20 DEBUG [org.geotools.coverageio.gdal.jp2mrisd] -
JP2MrSIDFormatFactory is not availaible.
14 Jul 13:48:20 DEBUG [org.geotools.coverageio.gdal.envihdr] -
EnviHdrFormatFactory is not availaible.
14 Jul 13:48:20 DEBUG [org.geotools.coverageio.gdal.jp2k] - JP2KFormatFactory
is not availaible.
14 Jul 13:48:20 DEBUG [org.geotools.coverageio.gdal.erdasimg] -
NITFFormatFactory is not availaible.
14 Jul 13:48:20 DEBUG [org.geotools.coverageio.gdal.erdasimg] -
ErdasImgFormatFactory is not availaible.
14 Jul 13:48:20 DEBUG [org.geotools.referencing.factory] - Failure in the
primary factory: No code "EPSG:4326" from authority "European Petroleum Survey
Group" found for object of type "IdentifiedObject". Now trying the fallback
factory...
14 Jul 13:48:20 DEBUG [org.geotools.gce.arcgrid] - Creating a new ArcGriFormat.
14 Jul 13:48:30 DEBUG [org.geotools.coverageio.gdal.dted] - DTEDFormatFactory
is not availaible.
14 Jul 13:48:30 DEBUG [org.geotools.coverageio.gdal.ehdr] -
EsriHdrFormatFactory is not availaible.
14 Jul 13:48:30 DEBUG [org.geotools.coverageio.gdal.ecw] - ECWFormatFactory is
not availaible.
14 Jul 13:48:30 DEBUG [org.geotools.coverageio.gdal.jp2ecw] -
JP2ECWFormatFactory is not availaible.
14 Jul 13:48:30 DEBUG [org.geotools.coverageio.gdal.mrsid] - MrSIDFormatFactory
is not availaible.
14 Jul 13:48:30 DEBUG [org.geotools.coverageio.gdal.jp2mrisd] -
JP2MrSIDFormatFactory is not availaible.
14 Jul 13:48:30 DEBUG [org.geotools.gce.arcgrid] - ArcGridFormatFactory is
availaible.
14 Jul 13:48:30 DEBUG [org.geotools.coverageio.gdal.envihdr] -
EnviHdrFormatFactory is not availaible.
14 Jul 13:48:30 DEBUG [org.geotools.coverageio.gdal.jp2k] - JP2KFormatFactory
is not availaible.
14 Jul 13:48:30 DEBUG [org.geotools.coverageio.gdal.erdasimg] -
NITFFormatFactory is not availaible.
14 Jul 13:48:30 DEBUG [org.geotools.coverageio.gdal.erdasimg] -
ErdasImgFormatFactory is not availaible.
14 Jul 13:48:30 DEBUG [org.geotools.gce.arcgrid] - Creating a new ArcGriFormat.
14 Jul 13:48:32 DEBUG [org.geotools.coverageio.gdal.dted] - DTEDFormatFactory
is not availaible.
14 Jul 13:48:32 DEBUG [org.geotools.coverageio.gdal.ehdr] -
EsriHdrFormatFactory is not availaible.
14 Jul 13:48:32 DEBUG [org.geotools.coverageio.gdal.ecw] - ECWFormatFactory is
not availaible.
14 Jul 13:48:32 DEBUG [org.geotools.coverageio.gdal.jp2ecw] -
JP2ECWFormatFactory is not availaible.
14 Jul 13:48:32 DEBUG [org.geotools.coverageio.gdal.mrsid] - MrSIDFormatFactory
is not availaible.
14 Jul 13:48:32 DEBUG [org.geotools.coverageio.gdal.jp2mrisd] -
JP2MrSIDFormatFactory is not availaible.
14 Jul 13:48:32 DEBUG [org.geotools.gce.arcgrid] - ArcGridFormatFactory is
availaible.
14 Jul 13:48:32 DEBUG [org.geotools.coverageio.gdal.envihdr] -
EnviHdrFormatFactory is not availaible.
14 Jul 13:48:32 DEBUG [org.geotools.coverageio.gdal.jp2k] - JP2KFormatFactory
is not availaible.
14 Jul 13:48:32 DEBUG [org.geotools.coverageio.gdal.erdasimg] -
NITFFormatFactory is not availaible.
14 Jul 13:48:32 DEBUG [org.geotools.coverageio.gdal.erdasimg] -
ErdasImgFormatFactory is not availaible.
14 Jul 13:48:32 DEBUG [org.geotools.gce.arcgrid] - Creating a new ArcGriFormat.
[1] http://docs.geoserver.org/2.0.x/en/user/data/gdal.html
[2] http://java.net/projects/imageio-ext
Does this make sense to anyone?? What could be happening??
Any help is much appreciated.
Thanks.
Regards,
David
Un saludo,
··················································································
David Alda Fernández de Lezea
Lurralde eta Biodibertsitate Saila / Dpto. de Territorio y Biodiversidad
IKT
Granja Modelo s/n · 01192 · Arkaute (Araba)
··················································································
Tlfnos.: 945-00-32-95 Fax: 945-00.32.90
··················································································
email: [email protected] web: www.ikt.es
··················································································
------------------------------------------------------------------------------
AppSumo Presents a FREE Video for the SourceForge Community by Eric
Ries, the creator of the Lean Startup Methodology on "Lean Startup
Secrets Revealed." This video shows you how to validate your ideas,
optimize your ideas and identify your business strategy.
http://p.sf.net/sfu/appsumosfdev2dev
_______________________________________________
Geoserver-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users