【发布时间】: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