处理程序调度失败;嵌套的异常是java.lang.AbstractMethodError:javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V 先决条件

处理程序调度失败;嵌套的异常是java.lang.AbstractMethodError:javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V 先决条件,java,maven,jasper-reports,Java,Maven,Jasper Reports,我最近从JasperReports版本3.7.6升级到6.4.1。JasperReports字体保持在版本5.6.1。我还确保更新每个项目的核心依赖项,它们现在包含在Maven构建中 我的服务器有一个JavaSE-1.8构建路径,这也与我的环境相匹配 pom.xml中更新的Jasper Maven依赖项如下所示 <dependency> <groupId>net.sf.jasperreports</groupId> <ar

我最近从JasperReports版本3.7.6升级到6.4.1。JasperReports字体保持在版本5.6.1。我还确保更新每个项目的核心依赖项,它们现在包含在Maven构建中

我的服务器有一个JavaSE-1.8构建路径,这也与我的环境相匹配

pom.xml中更新的Jasper Maven依赖项如下所示

<dependency>
        <groupId>net.sf.jasperreports</groupId>
        <artifactId>jasperreports-fonts</artifactId>
        <version>5.6.1</version>
        <type>jar</type>
        <scope>compile</scope>
</dependency>  

<dependency>
        <groupId>net.sf.jasperreports</groupId>
        <artifactId>jasperreports</artifactId>
        <version>6.4.1</version>
        <type>jar</type>
        <scope>compile</scope>
</dependency> 
说明:

The server encountered an internal error that prevented it from fulfilling this request.
例外情况:

org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
根本原因:

java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V
net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.<init>(SimpleFontExtensionHelper.java:149)
net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.getInstance(SimpleFontExtensionHelper.java:131)
net.sf.jasperreports.engine.fonts.FontExtensionsRegistry.ensureFontExtensions(FontExtensionsRegistry.java:80)
net.sf.jasperreports.engine.fonts.FontExtensionsRegistry.getExtensions(FontExtensionsRegistry.java:57)
net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getExtensions(DefaultExtensionsRegistry.java:115)
net.sf.jasperreports.engine.util.JRStyledTextParser.<clinit>(JRStyledTextParser.java:86)
net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:110)
net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:69)
net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:57)
net.sf.jasperreports.engine.fill.JRFiller.createBandReportFiller(JRFiller.java:200)
net.sf.jasperreports.engine.fill.JRFiller.createReportFiller(JRFiller.java:215)
net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:115)
net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:667)
net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:648)
net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:970)
java.lang.AbstractMethodError:javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V
net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper。(SimpleFontExtensionHelper.java:149)
net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.getInstance(SimpleFontExtensionHelper.java:131)
net.sf.jasperreports.engine.fonts.FontExtensionsRegistry.EnsureContextensions(FontExtensionsRegistry.java:80)
net.sf.jasperreports.engine.fonts.FontExtensionsRegistry.getExtensions(FontExtensionsRegistry.java:57)
net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getExtensions(DefaultExtensionsRegistry.java:115)
net.sf.jasperreports.engine.util.JRStyledTextParser.(JRStyledTextParser.java:86)
net.sf.jasperreports.engine.fill.JRBaseFiller.(JRBaseFiller.java:110)
net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:69)
net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:57)
net.sf.jasperreports.engine.fill.JRFiller.createBandReportFiller(JRFiller.java:200)
net.sf.jasperreports.engine.fill.JRFiller.createReportFiller(JRFiller.java:215)
net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:115)
net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:667)
net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:648)
net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:970)

该错误表示您的项目中有一个旧的DOM/SAX实现

您可能对Xerces之类的解析器有直接或可传递的依赖关系


您应该将依赖项升级到新版本,或者删除/排除它,以便使用JRE中包含的解析器。

这通常是构建jar的环境和运行jar的环境之间的库版本不匹配。在构建环境中,方法是具体的,但在服务器环境中,库是另一个版本,其中方法是抽象的。请发表您的帖子,并指出服务器和构建环境上的Java版本。我已经更新了帖子以反映这一点。我仍然有同样的问题。提前谢谢!该错误表示项目中有旧的DOM/SAX实现。您是否对Xerces之类的解析器有直接的或可传递的依赖关系?如果是这样,请将其升级到新版本或删除,以便使用JRE中包含的解析器。您好@dada67,您的注释建议已经解决了问题。请为这个问题添加一个答案,我将接受作为解决方案。非常感谢。
java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V
net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.<init>(SimpleFontExtensionHelper.java:149)
net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.getInstance(SimpleFontExtensionHelper.java:131)
net.sf.jasperreports.engine.fonts.FontExtensionsRegistry.ensureFontExtensions(FontExtensionsRegistry.java:80)
net.sf.jasperreports.engine.fonts.FontExtensionsRegistry.getExtensions(FontExtensionsRegistry.java:57)
net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getExtensions(DefaultExtensionsRegistry.java:115)
net.sf.jasperreports.engine.util.JRStyledTextParser.<clinit>(JRStyledTextParser.java:86)
net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:110)
net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:69)
net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:57)
net.sf.jasperreports.engine.fill.JRFiller.createBandReportFiller(JRFiller.java:200)
net.sf.jasperreports.engine.fill.JRFiller.createReportFiller(JRFiller.java:215)
net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:115)
net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:667)
net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:648)
net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:970)