问题原因:JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
Client client = dcf.createClient(webserviceurl);系统在这段代码运行时dcf为空,所以报空指针错误;但是在开发环境上以及部署到本地tomcat都没有问题,部署到linux服务器上时就会报空指针错误;
解决过程:
1、刚开始以为是jre下没有tools.jar,然后复制jdk目下的tools,结果还是不行;
2、又觉得是不是jdk的环境变量设置问题,设置了jdk环境变量后还是不行;
3、此时问题原因已经定位是系统环境的问题,但究竟错在哪里还不清楚;
4、后来网上查了很多资料,发现linux有一个默认的openjdk,虽然使用java -version出现的是自己安装的jdk版本,但是系统默认的还不是我们要设置的内容;
使用命令:update-alternatives --display java :
没有自己安装的jdk在内;
使用命令设置优先级,数值越高,优先级越高
update-alternatives --install /usr/lib/jvm/java-8-openjdk-amd64/bin/java java /usr/lib/jvm/jdk1.8.0/bin/java 1080
再使用命令update-alternavices --config java:
选择2,自己设置的jdk,此时设置完成,已经使用的是自己的jdk;
5、访问系统,还是不行空指针错误;
6、查询tomcat使用的java环境:
ps -ef|grep tomcat
发现怎么又出来一个jdk版本,前面修改了linux的jdk版本后,tomcat没有重启,还是使用的原版本,
重启tomcat,解决问题。
记录下dynamicclientfactory.createlient 空指针遇到的坑
最新推荐文章于 2024-08-24 15:46:50 发布