在 Vaadin 中提供 NoClassDefFoundError 的附加组件

Add-on giving NoClassDefFoundError in Vaadin

我发现了这个可以将屏幕内容转换为 PDF 文件的插件。但是,当我添加这些代码行时:

PdfFromComponent factory = new PdfFromComponent();
factory.export(contentcity);

我收到此错误消息:

'javax.servlet.ServletException: com.vaadin.server.ServiceException: java.lang.NoClassDefFoundError: com/itextpdf/text/DocumentException' with root cause: 'com.vaadin.server.ServiceException: java.lang.NoClassDefFoundError: com/itextpdf/text/DocumentException'

我已经将jar文件添加到库中并编译了widgetset,但错误仍然存​​在。有人可以简要地解释一下如何处理吗?

不幸的是,当 class 有多个版本时,JVM 也会抛出 NoClassDefFoundError。您的 class 路径中可能有多个 iText JAR。检查您使用的附加组件是否包含 iText JAR,并仔细检查您没有多次包含该 JAR。

您需要将以下 Maven 依赖项添加到您的项目中:

<dependency>
   <groupId>com.itextpdf</groupId>
   <artifactId>itextpdf</artifactId>
   <version>5.5.6</version>
</dependency>

出于某种奇怪的原因,作者没有在他的插件中提供 pom 文件,因此他无法将其标记为依赖项。