用jfreechart做的预算使用预警图,在window环境下是好的。
但是在Unix的测试环境上就不显示图片,也不报错(获取数据应该是没有问题的),我想可能是图片的生成及引用出了问题
这是我在web.xml里配置的一段信息
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>
org.jfree.chart.servlet.DisplayChart
</servlet-class>
</servlet>/*------得到chart的保存路径----*/
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
fileName = ServletUtilities.saveChartAsPNG(chart, 650, 400, info,request.getSession());
/*------使用printWriter将文件写出----*/
PrintWriter pw = new PrintWriter(response.getWriter());
ChartUtilities.writeImageMap(pw, fileName, info, true);
pw.flush();

//展现预警分析图
var fileName = getAnalysisWarningView(tmAccount,tmPracticalAccount,lmAccount,lmPracticalAccount);
var analyView =document.getElementById("analysisView");
var url = _gModuleName+"/servlet/DisplayChart?filename="+fileName;
alert(url);
analyView.src=url;下图是用alert弹出的url地址:
本地运行程序时,生成的图片在我的tomcat的temp文件夹下;
不知道Unix上时怎样的,请前辈指点一下,哪里出了问题,该肿么改呢?

解决方案 »

  1.   

    具体不知道我的在window环境下是好的,在Unix上夜可以用,应该是细节问题仔细仔细检查下
      

  2.   


    你的也是这样写的吗?然后也是weblogic吧?
      

  3.   


    不懂,刚入门的菜鸟发现那个测试环境上得到的图片的 src地址竟然是下图的样子。没有得到图片名
      

  4.   

    在程序了加了点东西,让这块写到日志里。下面是我从unix上的程序运行日志里粘贴出来的。图好像不清,所以下面贴上了文字。[2011-09-16 14:29:22,711] [org.quartz.scheduler.instanceId = AUTO_Worker-2] (LoggingJobHistoryPlugin.java:514) INFO org.quartz.plugins.history.LoggingJobHistoryPlugin - Job 
    JobInitializationPlugin.JobInitializationPlugin_jobInitializer_quartz-config_xml execution complete at 14:29:22 09/16/2011 and reports: null
    <Sep 16, 2011 2:29:23 PM GMT+08:00> <Error> <HTTP> <BEA-101017> <[ServletContext@31727782[app:esop module:esop.war path:/esop spec-version:null], request: weblogic.servlet.internal.ServletRequestImpl@1417eac[
    GET /esop/servlet/DisplayChart?filename=null HTTP/1.1
    Accept: */*
    Referer: http://10.4.144.146:7001/esop/rm/budget/budgetAnalysisWarning.jsp
    Accept-Language: zh-cn
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; InfoPath.2)
    Connection: Keep-Alive
    Cookie: USERINFO_ATTR=AppframeSerial_10019; JSESSIONID=V3YDTysGPfZ64x7HT6Kzqn51dvs4xvX3C31vvPwQSGr1m2y1yZP4!851044685; LIGHT_SCREEN_WIDTH=1362; LightPortalLoginedUserId=3672; LightPortalOn=on; LightPortalCurrentTab=2724]] Root cause of ServletException.
    javax.servlet.ServletException: File '/var/tmp/null' does not exist
    at org.jfree.chart.servlet.DisplayChart.service(DisplayChart.java:116)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    Truncated. see log file for complete stacktrace
    >  图片在unix上就没有生成神马原因呢???