Java Mapscript vs. Swig
Umberto Nicoletti
umberto.nicoletti at GMAIL.COM
Tue Oct 3 00:01:05 PDT 2006
Jose',
I have compiled latest mapserver from CVS and built java mapscript
with swig 1.3.29.
I changed one of the examples as follows:
Index: examples/DrawMap.java
===================================================================
RCS file: /data2/cvsroot/mapserver/mapscript/java/examples/DrawMap.java,v
retrieving revision 1.5
diff -U3 -r1.5 DrawMap.java
--- examples/DrawMap.java 24 May 2006 08:26:49 -0000 1.5
+++ examples/DrawMap.java 3 Oct 2006 06:45:40 -0000
@@ -27,6 +27,9 @@
}
mapObj map = new mapObj(args[0]);
+ String path=map.getMappath();
+ map.setMappath(path);
+ System.out.println("MAPPATH IS="+path);
//map.getImagecolor().setRGB(153, 153, 204);
//styleObj st = map.getLayer(1).getClass(0).getStyle(0);
//st.getColor().setHex("#000000");
and then ran 'make test', which gave no problems.
I suspect you might have an older version of mapscript (either the .so
or the .jar) file lying around. In particular check common/lib of your
tomcat install.
Best regards,
Umberto
On 9/29/06, José Vilson de Mello de Farias <vilson.farias at digitro.com.br> wrote:
>
> Greetings,
>
> I've compiled a Mapserver from the latest CVS code (Sept 29) and I'm
> having some problems with Java Mapscript.
>
> My system had been running fine until this afternoon, when I compiled a
> new Mapserver from CVS code. I had to compile a new Swig version before I
> could start.
>
> The Mapserver compilation was fine, and I didn't get any erros. My goal
> was the Java Mapscript, wich was sucessfully compiled and tested with "make
> test". After I had deployed and restarted the Tomcat it figured out that one
> of my example codes wasn't working anymore. The code is very simple, please
> take a look :
>
>
> protected void doPost(HttpServletRequest req, HttpServletResponse resp)
> throws ServletException, IOException {
> log.trace("doGet - request:" + req);
> try {
> PrintWriter p = resp.getWriter();
>
> mapObj mapa = new
> mapObj("/home2/java/tomcat/webapps/mapserver_wms/mapas/rio_grande_do_sul.map");
>
> mapa.setMappath("/home2/java/tomcat/webapps/mapserver_wms/mapas/shapes_rio_grande_do_sul");
>
> imageObj image = mapa.draw();
>
> File arqMapa = File.createTempFile("mapa", ".png", new
> File("/home2/java/tomcat/webapps/mapserver_wms/image"));
> log.debug("createTempFile " + arqMapa.getAbsolutePath());
>
> arqMapa.deleteOnExit();
> image.save(arqMapa.getAbsolutePath(), mapa);
>
> resp.setContentType("text/html");
> resp.getWriter().println("<img src=image/" + arqMapa.getName() +
> ">");
> }
> catch (Exception e) {
> log.error(e.getLocalizedMessage(), e);
> }
> }
>
> After I executed the code above on Firefox, the following error was showed
> :
>
> javax.servlet.ServletException: set_mapObj_mappath
>
> org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:293)
>
> org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)
>
> root cause
>
> java.lang.UnsatisfiedLinkError: set_mapObj_mappath
>
> edu.umn.gis.mapscript.mapscriptJNI.set_mapObj_mappath(Native
> Method)
>
> edu.umn.gis.mapscript.mapObj.setMappath(mapObj.java:195)
> After some tests I found that the problem had been caused by
> mapa.setMappath code. It seems Swig wasn't able to create a proper
> mapscript.jar/libmapscript.so. I checked the mapscript_wrap.c and the
> corresponding method to mapa.setMappath was called
> Java_edu_umn_gis_mapscript_mapscriptJNI_mapObj_1mappath_1set.
> Although I have definitely no experience with Swig, those numbers "1" in
> method name doesn't look ok. Is it ok? Could be the Swig the responsible for
> this error?
>
> If I remove the mapa.setMappath, everything works fine and my map is shown
> in the browser.
>
> I included some info about my Mapserver and system. By the way, I've
> compiled every component of Mapserver instead of using Linux defaults.
>
>
> compiled packages (we haven't used any RPMs, all packages were manually
> compiled/installed)
> libpng-1.2.12
> freetype-2.2.1
> zlib-1.2.3
> gd-2.0.33
> jpegsrc.v6b
> tiff-3.8.2
> libgeotiff-1.2.1
> PDFlib-Lite-6.0.3
> proj-4.4.9
> curl-7.15.4
> geos-2.2.3
> gdal-1.3.2
> swig-1.3.29
>
> Mapserver's configure
> ./configure --prefix=/home2/mapserver --without-pdf --with-threads
> --with-zlib=/home2/mapserver/zlib
> --with-png=/home2/mapserver/libpng
> --with-tiff=/home2/mapserver/libtiff
> --with-jpeg=/home2/mapserver/libjpeg
> --with-freetype=/home2/mapserver/freetype
> --with-proj=/home2/mapserver/proj4
> --with-geos=/home2/mapserver/geos/bin/geos-config
> --with-gd=/home2/mapserver/gd
> --with-ogr=/home2/mapserver/gdal/bin/gdal-config
> --with-gdal=/home2/mapserver/gdal/bin/gdal-config
> --with-curl-config=/home2/mapserver/libcurl/bin/curl-config
> --with-wfs --with-wcs --with-wmsclient --with-wfsclient
> --with-php=/usr/include/php
>
> Linux
> Linux dgtad 2.6.9-22.EL #1 Mon Sep 19 18:20:28 EDT 2005 i686 athlon i386
> GNU/Linux
>
> MAPSERVER_HOME=/home2/mapserver
> PROJ_LIB=$MAPSERVER_HOME/proj4/share/proj
> LD_LIBRARY_PATH=$LD_LIBRARY_PATH::/home2/mapserver/proj4/lib:/home2/mapserver/gdal/lib:/home2/mapserver/geos/lib:/home2/mapserver/libcurl/lib:/home2/mapserver/libpng/lib:/home2/mapserver/libjpeg/lib:/home2/mapserver/libtiff/lib:/home2/mapserver/libgeotiff/lib:/home2/mapserver/ogdi/lib:/home2/mapserver/freetype/lib:/home2/mapserver/gd/lib:/home2/mapserver/zlib/lib:/home2/mapserver/proj4/share/proj:$MAPSCRIPT_HOME
> MAPSCRIPT_HOME=$MAPSERVER_HOME/mapscript
> PATH=/usr/java/jre/bin:/usr/java/jdk/bin:$MAPSCRIPT_HOME
>
> Java
> JRE_HOME=/usr/java/jre
> JAVA_HOME=/usr/java/jdk
> JDBC_HOME=/usr/java/jdbc
> CATALINA_HOME=/usr/java/tomcat
>
> java version "1.5.0_07"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_07-b03)
> Java HotSpot(TM) Client VM (build 1.5.0_07-b03, mixed mode, sharing)
>
> Tomcat
> Using CATALINA_BASE: /usr/java/tomcat
> Using CATALINA_HOME: /usr/java/tomcat
> Using CATALINA_TMPDIR: /usr/java/tomcat/temp
> Using JRE_HOME: /usr/java/jre
> Server version: Apache Tomcat/5.5.17
> Server built: Apr 14 2006 02:08:29
> Server number: 5.5.17.0
> OS Name: Linux
> OS Version: 2.6.9-22.EL
> Architecture: i386
> JVM Version: 1.5.0_07-b03
> JVM Vendor: Sun Microsystems Inc.
>
> gcc
> gcc (GCC) 3.4.4 20050721 (Red Hat 3.4.4-2)
> Copyright (C) 2004 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions. There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>
> Swig
> SWIG Version 1.3.29
> Compiled with g++ [i686-pc-linux-gnu]
> Please see http://www.swig.org for reporting bugs and further information
>
>
> I'd appreciate any help and thanks in advance.
>
> Best regards,
>
>
> --
> José Vilson de Mello de Farias
> Analista de Sistemas
> SSE - Segurança Pública
>
> DÍGITRO TECNOLOGIA
> E-mail: vilson.farias at digitro.com.br
> Messenger: vilsonfarias at hotmail.com
> Fone: (0xx48) 3281-7314
> Fax: (0xx48) 3281-7000
> Site: www.digitro.com.br
More information about the MapServer-users
mailing list