先说说我的遭遇:
以下是我到运行脚本
之前一直运行正常,突然一天报如下错(但本地在eclipse里面运行始终正常)
[i]
java.io.IOException: javax.net.ssl.SSLKeyException: RSA premaster secret error
java.io.IOException: java.io.IOException: javax.net.ssl.SSLKeyException: RSA premaster secret error
[/i]
开始怀疑是jdk问题,重装jdk还是不行。
因为用到httpclient,以为是版本问题,所以修改httpclient为4.0版本,并设置为信任任何网站,还是提示错误,大致是没有访问权限的意思。
无耐之下,开始研究服务器跟本地的区别(因为只有在服务器上才出错,本地是可以的)。jdk比较过了,一样的版本。没道理啊,下载服务器代码本地部署一份(因为本地用ubuntu,所以部署跟服务器一模一样),问题来了,线上到代码在本地也不行了。奇怪。。。。。继续缩小排查范围。比较跟之前在本地能正常运行的程序(因为代码一样,只有部署有稍微差别)。
抱着试一试到态度修改来以下代码:
修改后为:
竟然运行OK啦,奇怪?????算了,先保证能运行再说!
可是问题又来了,我的log4j.xml不能打包到jar里啊,这样修改不方便,怎么加入到运行参数呢???
search。。。。。in。。。。baidu。。。。。。
得到解决方案:
在修改后的代码追加以上代码,日志打印OK。
研究至此已经解决了本次遇到到问题。但是一想,如果我有多个jar呢?
经过尝试“classpth”是不支持通配符“*”的,所以目前能想到的唯一办法是一个一个追加到后面。
如果有多个配置文件呢?
......
算了,想想都可怕,原来失去”Djava.ext.dirs“这么可怕。。。。。。
抽时间还是算好好研究研究"-cp"和”-Djava.ext.dirs“的加载规则吧。
以下是我到运行脚本
java -cp lib -Djava.ext.dirs=lib com.test.Test
之前一直运行正常,突然一天报如下错(但本地在eclipse里面运行始终正常)
[i]
java.io.IOException: javax.net.ssl.SSLKeyException: RSA premaster secret error
java.io.IOException: java.io.IOException: javax.net.ssl.SSLKeyException: RSA premaster secret error
[/i]
开始怀疑是jdk问题,重装jdk还是不行。
因为用到httpclient,以为是版本问题,所以修改httpclient为4.0版本,并设置为信任任何网站,还是提示错误,大致是没有访问权限的意思。
无耐之下,开始研究服务器跟本地的区别(因为只有在服务器上才出错,本地是可以的)。jdk比较过了,一样的版本。没道理啊,下载服务器代码本地部署一份(因为本地用ubuntu,所以部署跟服务器一模一样),问题来了,线上到代码在本地也不行了。奇怪。。。。。继续缩小排查范围。比较跟之前在本地能正常运行的程序(因为代码一样,只有部署有稍微差别)。
抱着试一试到态度修改来以下代码:
java -cp lib -Djava.ext.dirs=lib com.test.Test
修改后为:
java -cp lib/test.jar com.test.Test
竟然运行OK啦,奇怪?????算了,先保证能运行再说!
可是问题又来了,我的log4j.xml不能打包到jar里啊,这样修改不方便,怎么加入到运行参数呢???
search。。。。。in。。。。baidu。。。。。。
得到解决方案:
-Dlog4j.configuration=file:/lib/log4j.xml
在修改后的代码追加以上代码,日志打印OK。
研究至此已经解决了本次遇到到问题。但是一想,如果我有多个jar呢?
经过尝试“classpth”是不支持通配符“*”的,所以目前能想到的唯一办法是一个一个追加到后面。
如果有多个配置文件呢?
......
算了,想想都可怕,原来失去”Djava.ext.dirs“这么可怕。。。。。。
抽时间还是算好好研究研究"-cp"和”-Djava.ext.dirs“的加载规则吧。