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

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

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

    當我做完使用API Servlet部署能夠接受參數以后 發現一個新的問題又來了,就是在報表中生成的圖片和chart都是以鏈接本地地址存在的,那要是放在服務器上,別的機子訪問時會出現圖片不可用的問題。經過查一系列資料終于把問題解決了。具體原理是什么其實我也不太了解,BIRT的API我還是沒怎么好好讀,先把代碼貼到這里再說吧,具體用的方式前面已經寫過一個詳細的文檔了。
      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 閱讀(1137) 評論(0)  編輯  收藏 所屬分類: Other

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


    網站導航:
     
    Copyright@2008-2009 By Evan
    主站蜘蛛池模板: 1000部羞羞禁止免费观看视频| 91精品视频在线免费观看| 午夜性色一区二区三区免费不卡视频| 亚洲中文字幕第一页在线| 国产精品免费久久久久久久久 | 亚洲AV无码专区国产乱码电影| 国产日韩在线视频免费播放| 久久精品国产亚洲Aⅴ香蕉| 亚洲免费在线观看| 亚洲第一AV网站| 热re99久久6国产精品免费| 国产91在线免费| 亚洲av无码久久忘忧草| 在线观看视频免费完整版| 亚洲色大情网站www| 免费能直接在线观看黄的视频| 亚洲啪啪免费视频| 成年女人喷潮毛片免费播放| 亚洲第一福利视频| 久久久久久久免费视频| 亚洲AV无码一区二区三区鸳鸯影院| 国产一区视频在线免费观看| 国产精品小视频免费无限app| 香蕉视频在线观看亚洲| 青苹果乐园免费高清在线| 青娱乐在线免费观看视频| 亚洲人成精品久久久久| 国产高清不卡免费在线| 国产精品亚洲精品日韩动图| 超清首页国产亚洲丝袜| 亚洲精品视频在线免费| 国产成人+综合亚洲+天堂| 久久亚洲国产午夜精品理论片| 国内免费高清在线观看| eeuss影院ss奇兵免费com| 亚洲网站在线免费观看| 久久福利资源网站免费看| 国产亚洲福利精品一区二区| 亚洲激情在线观看| 国产免费无遮挡精品视频 | 性生大片视频免费观看一级|