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 ...
随机推荐
- [HackerRank] The Longest Common Subsequence
This is the classic LCS problem. Since it requires you to print one longest common subsequence, just ...
- Django中字典在html中的遍历
Django中字典在html中的遍历 如:在view中定义的函数 info = {'} context = {"info": info} 要在html中变量出info的信息(注意i ...
- 基于GTID的主从架构异常处理流程
通常情况下我们主库的binlog只保留7天,如果从库故障超过7天以上的数据没有同步的话,那么主从架构就会异常,需要重新搭建主从架构. 本文就简单说明下如何通过mysqldump主库的数据恢复从库的主从 ...
- python 三行代码实现快速排序
python 三行代码实现快速排序 最近在看 python cookbook , 里面的例子很精彩,这里就帮过来,做个备忘录 主要利用了行数的递归调用和Python的切片特性,解释一下每行代码的含义: ...
- Kafka — 高吞吐量的分布式发布订阅消息系统【转】
1.Kafka独特设计在什么地方?2.Kafka如何搭建及创建topic.发送消息.消费消息?3.如何书写Kafka程序?4.数据传输的事务定义有哪三种?5.Kafka判断一个节点是否活着有哪两个条件 ...
- c++相关知识
0.C语言基础知识及系统相关:http://c.biancheng.net/cpp/u/jiaocheng/ 1.C++ include观点与机制:http://developer.51cto.com ...
- 购物单问题—WPS使用excel
**** 180.90 88折 **** 10.25 65折 **** 56.14 9折 **** 104.65 ...
- 0406-服务注册与发现-客户端feign-使用、配置、日志、timeout
官方地址:https://cloud.spring.io/spring-cloud-static/Edgware.SR3/single/spring-cloud.html#spring-cloud-f ...
- java 多线程 day06 threadLocal
import java.util.HashMap;import java.util.Map;import java.util.Random; /** * Created by chengtao on ...
- win10下安装TensorFlow(CPU only)
TensorFlow安装过程 1 环境 我的安装环境:win10 + 64位 +miniconda2+miniconda创建的python3.5.5环境+pip 由于目前TensorFlow在wind ...