geoserver源码maven编译相关问题
1、登陆失败跳转404错误
登陆失败后指向的路径为:
http://192.168.15.97:8080/hgisserver/web/wicket/bookmarkable/org.geoserver.web.GeoServerLoginPage?error=true 但在url加密模式下,该路径被当作密文处理,指向的资源便不存在,这是geoserver源码的bug,未找到url加密模式的处理逻辑,暂时禁用url加密设置,登陆失败页面可以正常访问;
加密路径如下:
禁用后正常:
升级处理:
org.geoserver.web.DynamicCryptoMapper
若在EncryptUrlParams模式下会对除登陆失败页面的所有页面Url路径和参数进行加密转换,而在解析的时候却会获取cryptoMapper(通过判断GeoServerSecurityManager是否采用EncryptUrlParams)对Url进行解密计算,所以登陆失败页面解析失败;
修改:在DynamicCryptoMapper类中获取CryptoMapper时判断Url中是否包含“LoginPage”,包含则全部采用plainMapper处理,即不对Url进行解密;不包含则通过判断是否采用EncryptUrlParams决定是否解密;
2、geoserver页面显示的服务器IP不对:
在gs-wps-core和gs-web-core中使用的查找函数有问题,修改如下:
//add by lxh for search IP for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); String name = intf.getName(); if (!name.contains("docker") && !name.contains("vir") && !name.contains("lo")) { for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) { InetAddress inetAddress = enumIpAddr.nextElement(); if (!inetAddress.isLoopbackAddress() && !(inetAddress instanceof Inet6Address)) { return inetAddress; } } } } |
修改代码后,通过maven编译需更新wps模块,若出现Process Status页面的node域值仍未更新:
经检查发现,wps模块在extension文件夹中,该文件下的pom.xml未包含类似的编译模块信息
所以maven编译时若无特别指定,所有的extension模块都不会被编译。
Extension文件夹中通过profiles标签定义了各种profile ,供maven编译时指定编译的模块,如mvn clean install –P wps –Dmaven.test.skip=true,通过-P指定要编译的profile的id。
故只需要修改编译maven命令即可,jenkins中配置Build命令如下:
在Maven中-DskipTests和-Dmaven.test.skip=true的区别如下:
-DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。
-Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。
maven顶级pom和子pom版本号批量修改
当一个版本发布,新起一个版本时,我们只需要手动修改一下项目中pom.xml的版本号就可以了。但是如果这个maven项目有很多的子模块项目,那么一个个手动的去改就显得费时费力又繁琐了。还好,maven为我们提供了以下三个命令(需要进入顶级pom所在的目录)来帮助我们解决这个问题。
#1 设置新的版本号
mvn versions:set -DnewVersion=3.6.2.0
设置新版本号后,需在最外层pom.xml文件中更改gs.version的值为新版本号(3.6.2.0),在使用-Dmaven.test.skip=true选项进行编译安装时,会出现找不到各jar包新版本号的tests包错误,要么去掉所有pom文件中对tests的版本依赖(太繁琐),或者第一次不跳过test模式。
#2 当新版本号设置不正确时可以撤销新版本号的设置
mvn versions:revert
extension模块不会自动撤销,需在extension文件夹中建立备份pom文件pom.xml.versionsBackup,原pom.xml.versionsBackup经过上述命令已经被恢复了,需重建,并将版本号改为前面设置的新版本号(3.6.2.0),在extension目录下运行
mvn versions:revert -P allExtensions
#3 确认新版本号无误后提交新版本号的设置
mvn versions:commit
geoserver源码maven编译相关问题的更多相关文章
- 关于导入geoserver 源码到Eclipse编译运行
参考http://blog.csdn.net/gisshixisheng/article/details/43016443 和 http://blog.sina.com.cn/s/blog_6e37 ...
- windows下在idea用maven导入spark2.3.1源码并编译并运行示例
一.前提 1.配置好maven:intellij idea maven配置及maven项目创建 2.下载好spark源码: 二.导入源码: 1.将下载的源码包spark-2.3.1.tgz解压(E:\ ...
- 【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)
分类: Android 系统开发(5) 作者同类文章X 版权声明:本文为博主原创文章 ...
- geoserver源码学习与扩展——跨域访问配置
在 geoserver源码学习与扩展——restAPI访问 博客中提到了geoserver的跨域参数设置,本文详细讲一下geoserver的跨域访问配置. geoserver的跨域访问依赖java-p ...
- net-snmp源码VS2013编译添加加密支持(OpenSSL)
net-snmp源码VS2013编译添加加密支持(OpenSSL) snmp v3 协议使用了基于用户的安全模型,具有认证和加密两个模块. 认证使用的算法是一般的消息摘要算法,例如MD5/SHA等.这 ...
- net-snmp源码VS2013编译添加加密支持(OpenSSL)(在VS里配置编译OpenSSL)
net-snmp源码VS2013编译添加加密支持(OpenSSL) snmp v3 协议使用了基于用户的安全模型,具有认证和加密两个模块. 认证使用的算法是一般的消息摘要算法,例如MD5/SHA等.这 ...
- Hadoop2.x源码-编译剖析
1.概述 最近,有小伙伴涉及到源码编译.然而,在编译期间也是遇到各种坑,在求助于搜索引擎,技术博客,也是难以解决自身所遇到的问题.笔者在被询问多次的情况下,今天打算为大家来写一篇文章来剖析下编译的细节 ...
- Eclipse下建立geoserver源码工程
摘要:本文详细阐述,如何基于geoserver源码构建eclipse工程文件,操作过程中除用到jdk.eclipse以外,还有git和maven,操作系统为windows8. 1安装Git 从(htt ...
- 使用 IntelliJ IDEA 导入 Spark 最新源码及编译 Spark 源代码
前言 其实啊,无论你是初学者还是具备了有一定spark编程经验,都需要对spark源码足够重视起来. 本人,肺腑之己见,想要成为大数据的大牛和顶尖专家,多结合源码和操练编程. 准备工作 1.sca ...
随机推荐
- 160711、Java 多线程核心技术梳理
本文对多线程基础知识进行梳理,主要包括多线程的基本使用,对象及变量的并发访问,线程间通信,lock 的使用,定时器,单例模式,以及线程状态与线程组. java 多线程 基础知识 创建线程的两种方式:1 ...
- word2007的配置进度怎么产生的?如何解决?
那么要怎么解决这个问题呢?既然是安装的,那么我们便道安装控制器文件夹下面去找原因.在WIN8操作系统下,文件夹位于:C:\Program Files (x86)\Common Files\Micros ...
- datagridview数据导出到excel
/// <summary> /// 导出Excel /// </summary> /// <param name="mydgv">控件 Data ...
- Spring4学习笔记-AOP(基于配置文件的方式)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://shamrock.blog.51cto.com/2079212/1557743 引 ...
- stopPropagation(), preventDefault() , return false 事件
因为有父, 子节点同在, 因为有监听事件和浏览器默认动作之分. 使用 JavaScript 时为了达到预期效果经常需要阻止事件和动作执行. 一般我们会用到三种方法, 分别是 stopPropagati ...
- 2015-03-11——简析DOM规范
DOM 0级指浏览器专有的,非标准的方法.对象和集合. DOM 1级 1998年发布包括:DOM coreDOM html DOM 2级 DOM2 core 2000年发布 DOM2 html 20 ...
- java 内存空间
堆:new 出的对象在堆上 java栈:java程序.线程运行数据.内存数据 每个方法都有自己的栈.运行时需要的数据存在自己的栈中 每个线程对立的是图中浅蓝色的部分(java栈.本地方法栈.程序计数器 ...
- 报错:PermissionError: [WinError 5] Access is denied: 'C:\\Program Files\\Anaconda3\\Lib\\site-packages\\pywebhdfs'
Outline 在本(Windows系统)地往 “PAI”(hdfs)上上传数据时,需要安装pywebhdfs包,然后就报错了: 报错信息: PermissionError: [WinError 5] ...
- 修改sql server实例、数据库、表、字段的排序规则
转自:http://blog.51cto.com/jimshu/1095780 概念与详情请参考:字符编码与排序规则:https://www.cnblogs.com/gered/p/9145123.h ...
- 0409-服务注册与发现-Eurek Ribbon Feign常见问题及解决
一.Eureka 1.1.Eureka Environment的配置: eureka.environment: 字符串 参考文档: https://github.com/Netflix/eureka/ ...