在Linux服务器上发布项目的时候在日志中发现报如下异常:
Java代码
java.lang.UnsatisfiedLinkError: no rrdtool in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1709)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1030)
at com.hwellzen.ccms.ganglia.rrd.RrdTool.<clinit>(RrdTool.java:12)
at com.hwellzen.ccms.ganglia.rrd.RrdFileReader.getLatest(RrdFileReader.java:356)
at com.hwellzen.ccms.ganglia.rrd.RrdInfo.getLatest(RrdInfo.java:160)
at com.hwellzen.ccms.ganglia.rrd.RrdInfo.gatherInfo(RrdInfo.java:330)
at com.hwellzen.ccms.ganglia.rrd.RrdInfo.run(RrdInfo.java:313)
at com.hwellzen.ccms.ganglia.rrd.MultiInfo.read(MultiInfo.java:144)
at com.hwellzen.ccms.ganglia.rrd.MultiInfo.doSomething(MultiInfo.java:191)
at com.hwellzen.ccms.common.threadpooltool.WorkThread.analyseGatherDatas(WorkThread.java:105)
at com.hwellzen.ccms.common.threadpooltool.WorkThread.run(WorkThread.java:86)
比较测试环境和发布环境,发现测试环境是32位的Linux服务器,而发布环境是64位的Linux服务器,所以产生了JNI调用so的异常,经公司高人指点,在环境变量里面加入
Linux代码
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/tomcat/apache-tomcat-6.0.20/webapps/ccms/WEB-INF/classes:.