java - 将 PDF 转换为 PNG (tess4j) - 本地工作正常,但在服务器 JBoss 中不工作

标签 java maven pdf jboss tess4j

我厌倦了将 PDF 文件转换为 PNG 文件。

使用的maven库:

<dependency>
    <groupId>net.sourceforge.tess4j</groupId>
    <artifactId>tess4j</artifactId>
    <version>1.3.0</version>
</dependency> 

在本地开发Intellij和全局maven中它可以正确工作,但在服务器Wildfly 8.2.0-final中出现错误:

Caused by: java.lang.UnsatisfiedLinkError: Unable to load library 'gs': 
libgs.so: cannot open shared object file: No such file or directory
            at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:145) [jna-3.0.9.jar:3.0.9 b0]
            at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:188) [jna-3.0.9.jar:3.0.9 b0]
            at com.sun.jna.Library$Handler.<init>(Library.java:123) [jna-3.0.9.jar:3.0.9 b0]
            at com.sun.jna.Native.loadLibrary(Native.java:255) [jna-3.0.9.jar:3.0.9 b0]
            at com.sun.jna.Native.loadLibrary(Native.java:241) [jna-3.0.9.jar:3.0.9 b0]
            at org.ghost4j.GhostscriptLibraryLoader.loadLibrary(GhostscriptLibraryLoader.java:39) [ghost4j-0.5.1.jar:]
            at org.ghost4j.GhostscriptLibrary.<clinit>(GhostscriptLibrary.java:34) [ghost4j-0.5.1.jar:]
            at org.ghost4j.Ghostscript.initialize(Ghostscript.java:323) [ghost4j-0.5.1.jar:]
            at net.sourceforge.vietocr.PdfUtilities.convertPdf2Png(PdfUtilities.java:102) [tess4j-1.3.0.jar:1.3.0]
            at utils.Test.test(Test.java:20) [project-1.2.0.jar:]
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_21]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_21]
            at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_21]
            at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52)
            at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
            at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)
            at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
            at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
            at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:407)
            at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:82) [wildfly-weld-8.2.0.Final.jar:8.2.0.Final]
            at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:93) [wildfly-weld-8.2.0.Final.jar:8.2.0.Final]
            at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
            at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
            at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)
            at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
            at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
            at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
            at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
            at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47) [wildfly-jpa-8.2.0.Final.jar:8.2.0.Final]
            at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
            at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:407)
            at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:46) [weld-core-impl-2.2.6.Final.jar:2014-10-03 10:05]
            at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83) [wildfly-weld-8.2.0.Final.jar:8.2.0.Final]
            at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
            at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45) [wildfly-ee-8.2.0.Final.jar:8.2.0.Final]
            at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
            at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
            at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
            at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
            at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53)
            at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
            at org.jboss.as.ejb3.component.interceptors.NonPooledEJBComponentInstanceAssociatingInterceptor.processInvocation(NonPooledEJBComponentInstanceAssociatingInterceptor.java:59) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
            at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
            at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInNoTx(CMTTxInterceptor.java:260) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
            ... 107 more

文件 file = new File("path/to/file.pdf");

第 20 行是:

File[] arrayOfFile = PdfUtilities.convertPdf2Png(file);

知道为什么这在 jboss 上不起作用吗?

最佳答案

我认为服务器上没有安装ghost脚本库。根据documentation这是 PDF 支持所必需的。

关于java - 将 PDF 转换为 PNG (tess4j) - 本地工作正常,但在服务器 JBoss 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30982360/

相关文章:

java - 通过 Javamail 发送电子邮件

java - 在多维数组中存储信息并在JOptionPane中显示信息

java - 返回 java 数字数组

java - Eclipse中多模块maven web项目的依赖问题

java - 创建名称为 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration' 的 bean 时出错

javascript - PDF.JS 在客户端预览从服务器端发送的大型 pdf 文件(> 200MB)

php - 单击即可生成 PDF 并下载

pdf - 调整 PDF 格式以更快地打印它

java - @ComponentScan 与 Spring 和 Mongodb

maven-2 - mvn clean 没有依赖