<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    當(dāng)我做完使用API Servlet部署能夠接受參數(shù)以后 發(fā)現(xiàn)一個(gè)新的問題又來了,就是在報(bào)表中生成的圖片和chart都是以鏈接本地地址存在的,那要是放在服務(wù)器上,別的機(jī)子訪問時(shí)會(huì)出現(xiàn)圖片不可用的問題。經(jīng)過查一系列資料終于把問題解決了。具體原理是什么其實(shí)我也不太了解,BIRT的API我還是沒怎么好好讀,先把代碼貼到這里再說吧,具體用的方式前面已經(jīng)寫過一個(gè)詳細(xì)的文檔了。
      1 package cn.com.maxtech.fileupload;
      2 
      3 import java.io.IOException;
      4 import java.util.Enumeration;
      5 import java.util.HashMap;
      6 import java.util.Map;
      7 import java.util.logging.Level;
      8 import java.util.logging.Logger;
      9 
     10 import javax.servlet.ServletContext;
     11 import javax.servlet.ServletException;
     12 import javax.servlet.http.HttpServlet;
     13 import javax.servlet.http.HttpServletRequest;
     14 import javax.servlet.http.HttpServletResponse;
     15 
     16 
     17 import org.eclipse.birt.report.engine.api.EngineConstants;
     18 
     19 import org.eclipse.birt.report.engine.api.HTMLRenderContext;
     20 import org.eclipse.birt.report.engine.api.HTMLRenderOption;
     21 
     22 import org.eclipse.birt.report.engine.api.EngineConfig;
     23 import org.eclipse.birt.report.engine.api.HTMLActionHandler;
     24 import org.eclipse.birt.report.engine.api.HTMLEmitterConfig;
     25 import org.eclipse.birt.report.engine.api.HTMLServerImageHandler;
     26 import org.eclipse.birt.report.engine.api.IReportEngine;
     27 import org.eclipse.birt.report.engine.api.IReportRunnable;
     28 import org.eclipse.birt.report.engine.api.IRunAndRenderTask;
     29   
     30 
     31 public class WebReport extends HttpServlet {
     32 
     33 /**
     34  * 
     35  */
     36 private static final long serialVersionUID = 1L;
     37 /**
     38  * Constructor of the object.
     39  */
     40 private IReportEngine birtReportEngine = null;
     41 protected static Logger logger = Logger.getLogger( "org.eclipse.birt" );
     42 
     43 public WebReport() {
     44  super();
     45 }
     46 
     47 /**
     48  * Destruction of the servlet. 
     49  */
     50 public void destroy() {
     51  super.destroy(); 
     52  BirtEngine.destroyBirtEngine();
     53 }
     54 
     55 
     56 /**
     57  * The doGet method of the servlet. 
     58  *
     59  */
     60 public void doGet(HttpServletRequest req, HttpServletResponse resp)
     61   throws ServletException, IOException {
     62     
     63   Map m = new HashMap();
     64   Enumeration names = req.getParameterNames();
     65   while (names.hasMoreElements()) {
     66       String name =(String)names.nextElement();
     67       String value = req.getParameter(name);
     68       if (name.trim().equals("ReportName"|| name.trim().equals("action"|| value == null || value.trim().equals("")) {
     69           
     70       } else {
     71           m.put(name, value);
     72           System.out.print(name + "--->");
     73           System.out.println(m.get(name));
     74       }
     75       
     76   }
     77   
     78   ServletContext sc = req.getSession().getServletContext();
     79   
     80   this.birtReportEngine = BirtEngine.getBirtEngine(sc);
     81   EngineConfig config = birtReportEngine.getConfig();
     82   HTMLEmitterConfig emitterConfig = new HTMLEmitterConfig( );   
     83   emitterConfig.setActionHandler( new HTMLActionHandler( ) );   
     84   HTMLServerImageHandler imageHandler = new HTMLServerImageHandler( );   
     85   emitterConfig.setImageHandler( imageHandler ); 
     86   
     87   config.getEmitterConfigs( ).put( "html", emitterConfig );
     88   
     89   
     90  resp.setContentType("text/html");
     91  //resp.setContentType( "application/pdf" ); 
     92  //resp.setHeader ("Content-Disposition","inline; filename=test.pdf");  
     93  String reportPath = req.getParameter("reportPath");
     94  String reportName = req.getParameter("ReportName");
     95 
     96  
     97  //setup image directory
     98  HTMLRenderContext renderContext = new HTMLRenderContext();
     99  renderContext.setBaseImageURL(req.getContextPath()+"/images");
    100  renderContext.setImageDirectory(sc.getRealPath("/images"));
    101  
    102  renderContext.setSupportedImageFormats("JPG;PNG;BMP;SVG"); 
    103  
    104  logger.log( Level.FINE, "image directory " + sc.getRealPath("/images"));  
    105  System.out.println("stdout image directory " + sc.getRealPath("/images"));
    106  System.out.println("stdout image directory " + renderContext.getBaseImageURL());
    107  
    108  HashMap<String, HTMLRenderContext> contextMap = new HashMap<String, HTMLRenderContext>();
    109  contextMap.put( EngineConstants.APPCONTEXT_HTML_RENDER_CONTEXT, renderContext );
    110  
    111  IReportRunnable design;
    112  try
    113  {
    114   //Open report design
    115   design = birtReportEngine.openReportDesign( sc.getRealPath("/upload/baobiao/" + reportPath)+"/"+reportName );
    116   //create task to run and render report
    117   IRunAndRenderTask task = birtReportEngine.createRunAndRenderTask( design );  
    118   task.setAppContext( contextMap );
    119   
    120   //set output options
    121   HTMLRenderOption options = new HTMLRenderOption();
    122   options.setOutputFormat(HTMLRenderOption.OUTPUT_FORMAT_HTML);
    123   //options.setOutputFormat(HTMLRenderOption.OUTPUT_FORMAT_PDF);
    124   options.setOutputStream(resp.getOutputStream());
    125   task.setRenderOption(options);
    126   
    127   //run report
    128   task.setParameterValues(m);
    129   task.run();
    130   task.close();
    131  }catch (Exception e){
    132   
    133   e.printStackTrace();
    134   throw new ServletException( e );
    135  }
    136 }
    137 
    138 /**
    139  * The doPost method of the servlet. 
    140  *
    141  */
    142 public void doPost(HttpServletRequest request, HttpServletResponse response)
    143   throws ServletException, IOException {
    144 
    145  this.doGet(request, response);
    146 }
    147 
    148 /**
    149  * Initialization of the servlet. 
    150  *
    151  * @throws ServletException if an error occure
    152  */
    153 public void init() throws ServletException {
    154     
    155     BirtEngine.initBirtConfig();
    156  
    157 }
    158 
    159 }
    160 


    posted on 2008-06-18 23:51 leweslove 閱讀(1141) 評論(0)  編輯  收藏 所屬分類: Other

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    Copyright@2008-2009 By Evan
    主站蜘蛛池模板: 精品一区二区三区免费毛片爱 | 国产91色综合久久免费分享| 国产美女a做受大片免费| 99久久免费看国产精品| 伊人免费在线观看| a视频在线观看免费| 中文字幕不卡免费视频| 免费人成在线观看视频高潮| 亚洲va在线va天堂va手机| 亚洲成AV人综合在线观看| 蜜芽亚洲av无码精品色午夜| 亚洲精品第五页中文字幕| 亚洲精品乱码久久久久久下载| 亚洲欧洲日产韩国在线| 亚洲jjzzjjzz在线观看| 日本亚洲色大成网站www久久 | 99久久久精品免费观看国产 | 一级毛片免费在线观看网站| 亚洲特级aaaaaa毛片| 亚洲国语在线视频手机在线| 亚洲成AV人片久久| 亚洲AV无码一区二区三区久久精品 | 成年女人免费视频播放77777| 扒开双腿猛进入爽爽免费视频 | AA免费观看的1000部电影| 在线免费观看一级片| 最近中文字幕大全免费视频| 91短视频在线免费观看| 91情侣在线精品国产免费| 日本不卡高清中文字幕免费| 久久青草免费91线频观看站街| 久久国产色AV免费看| 搡女人真爽免费视频大全| 亚洲精品动漫人成3d在线 | 久久最新免费视频| 一级毛片免费观看不卡的| 美女被免费喷白浆视频| 国产一级大片免费看| 亚洲中文字幕第一页在线| 国产成人亚洲精品影院| 久久91亚洲精品中文字幕|