3、JAVA集成GDAL-Windons系统部署Java集成gdal项目

一、 Windows部署GDAL
二、 JAVA开发环境整合GDAL
三、 部署Java集成gdal项目
四、 Linux系统编译、发布gdal项目

文末有源码下载地址

三、部署Java集成gdal项目

为了项目开发调试和部署资源自动复制,我们需要使用Maven插件完成资源拷贝和打包任务,因此在pom进行以下配置:2和3对应项目类型二选一

1、资源拷贝使用Maven插件maven-resources-plugin复制文件到WEB-INF/lib


    org.apache.maven.plugins
    maven-resources-plugin
    2.6
    
        
            copy-resources-jars
            validate
            
                copy-resources
            
            
                ${project.build.directory}/${project.build.finalName}/WEB-INF/lib
                
                    
                      ${gdal.bindir}
                      false
                      
                          **/*.jar
                      
                  
                
            
        
    
  

2 tomcat部署SpringMvc打包War


    org.apache.maven.plugins
    maven-war-plugin
    2.6
    
          ${project.artifactId}
            
                
                    ${gdal.bindir}
                    WEB-INF/lib
                    
                        **/*.jar
                    
                
         
     

3 Docker部署SpringBoot打包Jar


    org.apache.maven.plugins
    maven-jar-plugin
    2.6
    
          ${project.artifactId}
            
                
                    ${gdal.bindir}
                    WEB-INF/lib
                    
                        **/*.jar
                    
                
         
     

(4)控制器

加载动态库要通过接口加载,在Windows环境通过static{加载动态库}是可行的,而在Linux环境动态库在JVM启动时已经加载完成了,再次载入报错 libgdalalljni.so already loaded in another classloader

image.png

  • Windows环境需要通过代码加载动态库,可以在前端调用API来加载
  • Linux环境JVM启动自行加载,在项目中无需加载
    /*
     * 加载动态库
     */
    @RequestMapping("/api/gdal/load")
    public JsonResult load() {
        GdalHolder.loadLibrary();
        return this.renderSuccess("加载完成!");
    }
    /*
     * 注册驱动
     */
    @RequestMapping("/api/gdal/register")
    public JsonResult register() {
        GdalHolder.registerAll();
        return this.renderSuccess("注册驱动!");
    }
    /*
     * 测试接口
     */
    @RequestMapping("/api/gdal/test")
    public JsonResult test() {
           ...
    }

OK,赶快发布一个试试水吧,对应进行配置修改

src/main/resources/gdal/win32

src/main/resources/gdal/linux

项目源码:
https://gitee.com/giself/geodb-gdal.git

你可能感兴趣的:(3、JAVA集成GDAL-Windons系统部署Java集成gdal项目)