我有一个消耗JSON数据的Jasper模板。我有一个JsonQL作为数据源的语言。模板在本地编译精细并生成PDF预览。
但是当我们尝试在服务器上执行此操作时(使用jasperreports 6.4.0作为依赖项的独立应用程序),我收到此错误消息:
org.springframework.web.util.NestedServletException:处理程序处理失败;嵌套异常是java.lang.NoClassDefFoundError:antlr / TokenStream 在org.springframework.web.servlet.DispatcherServlet.triggerAfterCompletionWithError(DispatcherServlet.java:1302) 在org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:977) 在org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) 在org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:968)
我检查了net.sf.jasperreports 6.4.0的pom文件,并将其作为依赖项:
<dependency>
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
<version>2.7.5</version>
<optional>true</optional>
</dependency>
所以我无法弄清楚为什么我会为antrl.TokenStream获取NoClassDefFoundError。我在网上发现一些帖子说使用Antlr 2.7.7,但这是Jasper引擎pom所以我不能轻易覆盖它。还有其他原因吗?
我们有很多其他模板可以正常使用。这是第一个使用JsonQL的人。这是一个因素吗?