<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title>BIRT Integration with Liferay DXP 7.4 u77</title>
  <link rel="self" href="https://liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=122211912" />
  <subtitle>BIRT Integration with Liferay DXP 7.4 u77</subtitle>
  <id>https://liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=122211912</id>
  <updated>2026-04-06T22:09:07Z</updated>
  <dc:date>2026-04-06T22:09:07Z</dc:date>
  <entry>
    <title>RE: RE: BIRT Integration with Liferay DXP 7.4 u77</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=122212312" />
    <author>
      <name>Olaf Kock</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=122212312</id>
    <updated>2023-11-01T09:37:12Z</updated>
    <published>2023-11-01T09:37:11Z</published>
    <summary type="html">&lt;p&gt;Also: I find a number of hits when searching for &amp;quot;BIRT
  createFactoryObject null&amp;quot; - you might want to dig among those.&lt;/p&gt;</summary>
    <dc:creator>Olaf Kock</dc:creator>
    <dc:date>2023-11-01T09:37:11Z</dc:date>
  </entry>
  <entry>
    <title>RE: BIRT Integration with Liferay DXP 7.4 u77</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=122212241" />
    <author>
      <name>Olaf Kock</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=122212241</id>
    <updated>2023-11-01T09:33:07Z</updated>
    <published>2023-11-01T09:33:05Z</published>
    <summary type="html">&lt;p&gt;As discussed on Slack, this is rather a question for the BIRT community.&lt;/p&gt;
&lt;p&gt;Leading up to this point, you were adding transitive dependencies,
  until you didn't get any more problems with static binding. My
  assumption is that it's still possible that the BIRT framework can't
  find more (optional) transitive dependencies that are
  &lt;em&gt;technically&lt;/em&gt; optional (thus: statically it works), but
  &lt;em&gt;practically&lt;/em&gt;​​​​​​​ required for the configuration that you
  attempt to use (thus: The framework doesn't provide you with a factory).&lt;/p&gt;
&lt;p&gt;Fine if someone can help here, but I guess the BIRT community might
  have it easier to identify missing libraries. When you ask there,
  please provide them with the list of transitive dependencies that you
  already have added to your system, and ask which additional ones you
  might be missing.&lt;/p&gt;</summary>
    <dc:creator>Olaf Kock</dc:creator>
    <dc:date>2023-11-01T09:33:05Z</dc:date>
  </entry>
  <entry>
    <title>BIRT Integration with Liferay DXP 7.4 u77</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=122211911" />
    <author>
      <name>amit maurya</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=122211911</id>
    <updated>2023-11-01T09:26:36Z</updated>
    <published>2023-11-01T06:05:40Z</published>
    <summary type="html">&lt;p&gt;Hello everyone i am using Liferay 7.4 u77  version and I'm using birt
  4.4.2 version i want to generate the birt report using Liferay mvc
  portlet  i added all the dependencies related to birt but I'm unable
  to get the     IReportEngineFactory factory = (IReportEngineFactory)
  Platform&lt;br&gt;                   
   .createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY);&lt;br&gt;
  I'm unable to get the factory object  i m sharing my complete code for
  birt report generation &lt;/p&gt;
&lt;p&gt;    private IReportEngine getReportEngine() {&lt;br&gt;       
   IReportEngine engine = null;&lt;br&gt;         EngineConfig config =
   null;&lt;br&gt;         try {&lt;br&gt;             config = new
  EngineConfig();&lt;br&gt;                Platform.startup(config);&lt;br&gt;   
           IReportEngineFactory factory = (IReportEngineFactory)
  Platform&lt;br&gt;                   
   .createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY);&lt;br&gt;
              engine = factory.createReportEngine(config);&lt;br&gt;       
          engine.changeLogLevel( Level.WARNING );&lt;br&gt;         } catch
  (BirtException ex) {&lt;br&gt;             LOGGER.error(ex);&lt;br&gt;       
   }&lt;br&gt;         return engine;&lt;br&gt;     }&lt;br&gt;
  &lt;br&gt; @Override&lt;br&gt;     public void doView(RenderRequest renderRequest,
  RenderResponse renderResponse)&lt;br&gt;             throws IOException,
  PortletException {&lt;br&gt;         &lt;br&gt;           IRunAndRenderTask
  runAndRenderTask = null;&lt;br&gt;           try { &lt;br&gt;               &lt;br&gt;
                IReportEngine reportEngine = getReportEngine();&lt;br&gt;   
         IReportRunnable report =
  reportEngine.openReportDesign(&amp;quot;C:\\work\\test\\new_report.rptdesign&amp;quot;);&lt;br&gt;
            runAndRenderTask =
  reportEngine.createRunAndRenderTask(report);&lt;br&gt;         
   renderResponse.setContentType(reportEngine.getMIMEType(&amp;quot;pdf&amp;quot;));&lt;br&gt;
            IRenderOption options = new RenderOption();&lt;br&gt;         
   PDFRenderOption pdfRenderOption = new&lt;br&gt;         
   PDFRenderOption(options);&lt;br&gt;         
   pdfRenderOption.setOutputFormat(&amp;quot;pdf&amp;quot;);&lt;br&gt;         
   runAndRenderTask.setRenderOption(pdfRenderOption);&lt;br&gt;         
   runAndRenderTask.getAppContext().put(EngineConstants.&lt;br&gt;         
   APPCONTEXT_PDF_RENDER_CONTEXT, renderResponse);          &lt;br&gt;       
     HttpServletResponse response =&lt;br&gt;         
   PortalUtil.getHttpServletResponse(renderResponse);&lt;br&gt;         
   response.addHeader(&amp;quot;Content-disposition&amp;quot;, &amp;quot;attachment;
  filename=ria-report.pdf&amp;quot;);&lt;br&gt;               
   pdfRenderOption.setOutputStream(response.getOutputStream());&lt;br&gt;   
               runAndRenderTask.run();&lt;br&gt;             } catch
  (Exception e) {&lt;br&gt;                 LOGGER.error(e);&lt;br&gt;           
   }&lt;br&gt;             &lt;br&gt;           super.doView(renderRequest,
  renderResponse);&lt;br&gt;     }&lt;br&gt; Thanks&lt;/p&gt;</summary>
    <dc:creator>amit maurya</dc:creator>
    <dc:date>2023-11-01T06:05:40Z</dc:date>
  </entry>
</feed>
