Grails java.lang.NoSuchMethodError:com.lowagie.text.pdf.BaseFont.getCharBBox(C)[I]

Grails java.lang.NoSuchMethodError:com.lowagie.text.pdf.BaseFont.getCharBBox(C)[I],grails,grails-plugin,Grails,Grails Plugin,我使用的是Grails2.3.7。我在这里遇到了麻烦。我花了很多时间寻找解决方案,但我没有找到解决问题的方法 2015-10-12 14:15:08,908 ERROR [http-nio-8080-exec-5] GrailsExceptionResolver.error(213) | NoSuchMethodError occurred when processing request: [GET] /dispatch/renderAsPdf/3621410

我使用的是Grails2.3.7。我在这里遇到了麻烦。我花了很多时间寻找解决方案,但我没有找到解决问题的方法

   2015-10-12 14:15:08,908 ERROR [http-nio-8080-exec-5]     
   GrailsExceptionResolver.error(213) | NoSuchMethodError occurred when 
   processing request: [GET] /dispatch/renderAsPdf/3621410

   com.lowagie.text.pdf.BaseFont.getCharBBox(C)[I. Stacktrace follows:
   org.codehaus.groovy.grails.web.servlet.mvc.exceptions.ControllerExecutionException: Executing action [renderAsPdf] of controller
   [com.mymodelorder.model.DispatchController]  caused exception: Runtime error executing action
   at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198)
   at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63)
   at grails.plugin.multitenant.core.servlet.CurrentTenantServletFilter.doFilter(CurrentTenantServletFilter.java:53)
   at grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter.doFilter(GrailsAnonymousAuthenticationFilter.java:53)
   at grails.plugin.springsecurity.web.authentication.RequestHolderAuthenticationFilter.doFilter(RequestHolderAuthenticationFilter.java:49)
   at grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter.doFilter(MutableLogoutFilter.java:82)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   at java.lang.Thread.run(Thread.java:745)
   Caused by: org.codehaus.groovy.grails.web.servlet.mvc.exceptions.ControllerExecutionException: Runtime error executing action
    ... 9 more
   Caused by: java.lang.reflect.InvocationTargetException
    ... 9 more
   Caused by: java.lang.NoSuchMethodError: com.lowagie.text.pdf.BaseFont.getCharBBox(C)[I
   at org.xhtmlrenderer.pdf.ITextFontResolver$FontDescription.setMetricDefaults(ITextFontResolver.java:679)
   at org.xhtmlrenderer.pdf.ITextFontResolver$FontDescription.<init>(ITextFontResolver.java:610)
   at org.xhtmlrenderer.pdf.ITextFontResolver.addCourier(ITextFontResolver.java:410)
   at org.xhtmlrenderer.pdf.ITextFontResolver.createInitialFontMap(ITextFontResolver.java:390)
   at org.xhtmlrenderer.pdf.ITextFontResolver.<init>(ITextFontResolver.java:52)
   at org.xhtmlrenderer.pdf.ITextRenderer.<init>(ITextRenderer.java:115)
   at org.xhtmlrenderer.pdf.ITextRenderer.<init>(ITextRenderer.java:102)
  at grails.plugin.rendering.pdf.PdfRenderingService.doRender(PdfRenderingService.groovy:34)
当我使用依赖关系报告命令时,我发现了下面与itext版本相关的详细信息

+--- org.grails:grails-docs:2.3.7
|    \--- org.xhtmlrenderer:core-renderer:R8
|    \--- org.yaml:snakeyaml:1.8
|    \--- org.grails:grails-gdoc-engine:1.0.1
|    \--- com.lowagie:itext:2.0.8
|         \--- bouncycastle:bcmail-jdk14:138
|         \--- bouncycastle:bcprov-jdk14:138
|    \--- commons-lang:commons-lang:2.6

+--- org.grails.plugins:rendering:1.0.0
|    \--- org.xhtmlrenderer:core-renderer:R8
|    \--- com.lowagie:itext:2.1.0
|         \--- bouncycastle:bcmail-jdk14:136
|         \--- bouncycastle:bcprov-jdk14:136
我不明白为什么这个错误会出现得更早。它工作正常,但
现在给出的错误类似于上面提到的itext版本


请帮助我。

您可以通过从一个插件中排除
itext
依赖项来解决问题。在我的例子中,冲突的插件是
export
rendering

我决定将其从
导出
插件中排除,如下所示:


compile(':export:1.6'){excludes'itext',itext rtf'}
您可以通过从一个插件中排除
itext
依赖项来解决问题。在我的例子中,冲突的插件是
export
rendering

我决定将其从
导出
插件中排除,如下所示:


compile(':export:1.6'){排除'itext','itext rtf'}
grails3。这些运行时覆盖似乎解决了我的问题:

dependencies {
    runtime 'org.xhtmlrenderer:core-renderer:R8'
    runtime 'com.lowagie:itext:2.1.0'
}
以下是我找到解决方案的帖子:

Grails 3。这些运行时覆盖似乎为我解决了这个问题:

dependencies {
    runtime 'org.xhtmlrenderer:core-renderer:R8'
    runtime 'com.lowagie:itext:2.1.0'
}
以下是我找到解决方案的帖子:

Mb您现在发送的对象类无效,请检查对象类。是否可以添加
com.mymodelorder.model.DispatchController
?特别是
.renderAsPdf()的代码
method。我以前有过这个,但记不起细节。我认为您的iText版本冲突的情况是正确的。可能其他插件也使用了iText,或者您的lib/-folder中有一个旧的iText。有人能帮我一下吗?正如我前面提到的依赖性报告。哦,我终于找到了解决方案,在lib folder中itext 2.1.5和2.1.0两个版本都有JAR,并手动检查差异,如public int[]More…getCharBBox(int c);在2.1.5和public int[]More…getCharBBox(char c);在2.1.0中。:)Mb如果您现在发送的对象的类无效,请检查对象类。是否可以添加
com.mymodelorder.model.DispatchController
?特别是
.renderAsPdf()的代码
method。我以前有过这个,但记不起细节。我认为您的iText版本冲突的情况是正确的。可能其他插件也使用了iText,或者您的lib/-folder中有一个旧的iText。有人能帮我一下吗?正如我前面提到的依赖性报告。哦,我终于找到了解决方案,在lib folder中itext 2.1.5和2.1.0两个版本都有JAR,并手动检查差异,如public int[]More…getCharBBox(int c);在2.1.5和public int[]More…getCharBBox(char c);在2.1.0中。:)这是我在grails 3.2上的案例这是我在grails 3.2上的案例gradle的下一个演变是看起来像纱线=D。谢谢,工作非常完美。gradle的下一个演变是看起来像纱线=D。谢谢,工作非常完美。