2012-05-01 1 views
0

Я интегрировал механизм отчетов BIRT 3.7.2 с моим веб-приложением. Теперь проблема в том, что она создает HTML-страницу (если я использую формат html для рендеринга) в определенном месте.Birt 3.7.2 отчет об интеграции html-развертывание

Я не хочу сохранять страницу отчета html, вместо этого хочу, чтобы она отображала этот html прямо в моем веб-приложении (сохраняется в temp и удаляется после использования). Также он создает каталог изображений & каждый раз, когда отчет со встроенным изображением и/или графиком в нем сохраняет изображение и/или график в каталоге изображений, не требуя увеличения пространства.

Может кто-нибудь мне помочь .. ??

Я следовал инструкциям, приведенным в: https://dev.c-ware.de/confluence/display/PUBLIC/Embeding+Birt+into+Application+built+with+Maven

+0

Мой вопрос: Как встроить отчет Birt в любую страницу JSP .. ?? Любой источник любой части кода будет большой помощью. – wizavi

ответ

0

я не вникать в библиотеку Birt, чтобы сделать это, и не создавать каких-либо классов, используя их API, как это показывает в вашей ссылке, так что это не может быть наиболее эффективным решением.

Это было несколько месяцев назад, и теперь у меня нет доступа к источнику, но в основном я просто добавил BirtRuntime к моему webapp как сервлет как covered here.

Это позволило мне загрузить отчеты Birt, но мне также необходимо было внедрить их в существующие веб-страницы. У меня уже был довольно простой сервлет-сервлет в этом приложении, который бы просто прочитал html-содержимое URL-адреса. Поэтому я только что назвал этот сервлет, используя url для моего отчета BIRT, и я бы записал вывод, где я хотел его на веб-странице.

прокси сервлет было так:

import java.io.IOException; 
import java.io.InputStream; 
import java.net.MalformedURLException; 
import java.net.URL; 

import javax.servlet.ServletException; 
import javax.servlet.ServletOutputStream; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import org.apache.commons.io.IOUtils; 

public class ProxyServlet extends HttpServlet { 

    public void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException { 

     String urlString = request.getParameter("url"); 
     try { 
      URL url = new URL(urlString); 
      url.openConnection(); 
      InputStream in = url.openStream(); 
      ServletOutputStream out = response.getOutputStream(); 
      IOUtils.copy(in, out); 
     } 
     catch (MalformedURLException e) {  
      throw new ServletException(e); 
     } 
     catch (IOException e) {  
      throw new ServletException(e); 
     } 
    } 
} 
+0

Спасибо за ваш ответ, я посмотрю на него .. :) – wizavi