【问题标题】:BIRT runtime not found未找到 BIRT 运行时
【发布时间】:2019-01-08 14:55:35
【问题描述】:

我有一个应用程序,我将在其中介绍 Spring Boot。它有一些定义为 .rptdesign 文件的 BIRT 报告。为了处理它们,在 web.xml 中定义了以下映射。

<servlet>
    <servlet-name>EngineServlet</servlet-name>
    <servlet- class>org.eclipse.birt.report.servlet.BirtEngineServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>EngineServlet</servlet-name>
    <url-pattern>/output</url-pattern>
  </servlet-mapping>

和 Maven 依赖:

<dependency>
    <groupId>org.eclipse.birt.runtime</groupId>
    <artifactId>org.eclipse.birt.runtime</artifactId>
    <version>${eclipse.runtime.version}</version>
    <exclusions>
      <exclusion>
        <groupId>org.eclipse.birt.runtime</groupId>
        <artifactId>org.apache.poi</artifactId>
      </exclusion>
    </exclusions>
 </dependency>

我正在尝试使用 spring-boot 进行相同的配置。 Maven依赖是一样的。

我尝试通过 ServletRegistrationBean 注册映射:

@Bean
public ServletRegistrationBean exampleServletBean() {
    ServletRegistrationBean bean = new ServletRegistrationBean(
      new BirtEngineServlet(), "/output/*");
    bean.setLoadOnStartup(1);
    return bean;
}

此代码不编译为类:BirtEngineServlet 无法解析为类型。我尝试向 Maven 添加更多 BIRT 组件:

<dependency>
    <groupId>org.eclipse.birt</groupId>
    <artifactId>report-engine</artifactId>
    <version>3.7.0</version>
  </dependency>
  <dependency>
    <groupId>org.eclipse.birt</groupId>
    <artifactId>org.eclipse.birt.report.engine</artifactId>
    <version>2.2.0-20070705</version>
  </dependency>
  <dependency>
    <groupId>org.eclipse.birt</groupId>
    <artifactId>core</artifactId>
    <version>3.7.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt.runtime</groupId>
    <artifactId>viewservlets</artifactId>
    <version>4.2.0</version>
</dependency> 

我尝试过的其他选项是定义我自己的 BirtEngineFactory。代码已编译,但在运行时未找到 BIRT Runtime 类(即 BirtException),并引发 NoClassDefFoundException。

关于如何使用 Maven 通过 Spring Boot 配置 BIRT 有什么建议吗?

【问题讨论】:

    标签: maven spring-boot birt


    【解决方案1】:

    解决方法如下:

    pom.xml

    <repositories>
        <repository>
          <id>Maven Repository</id>
          <url>https://mvnrepository.com</url>
        </repository>
      </repositories>
    
    ...
    
    <dependency>
      <groupId>org.eclipse.birt.runtime</groupId>
      <artifactId>org.eclipse.birt.runtime</artifactId>
      <version>4.4.1</version>
      <exclusions>
          <exclusion>
            <groupId>org.eclipse.birt.runtime</groupId>
            <artifactId>org.apache.poi</artifactId>
          </exclusion>
           <exclusion>
                <groupId>org.eclipse.birt.runtime</groupId>
                <artifactId>org.eclipse.orbit.mongodb</artifactId>
          </exclusion>
        </exclusions>
    </dependency>
    
    <dependency>
        <groupId>org.eclipse.birt.runtime</groupId>
        <artifactId>viewservlets</artifactId>
        <version>4.2.0</version>
    </dependency>
    

    存储库很重要,运行时版本很重要 - 尝试了各种但失败了 - 只有 4.4.1 对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-21
      • 1970-01-01
      • 1970-01-01
      • 2021-08-04
      • 2013-10-22
      • 2014-06-13
      相关资源
      最近更新 更多