【发布时间】:2016-09-16 16:33:44
【问题描述】:
这不是转发,我要求的是 Amazon ec2 实例!其他人提出的问题在我的本地机器上运行良好,这些问题都得到了解决,但在亚马逊上却没有。
关于这个问题已经有好几份报告了,但没有一个能解决我这个问题。 发布一些解决方案:
https://forum.openoffice.org/en/forum/viewtopic.php?p=88088
https://forum.openoffice.org/en/forum/viewtopic.php?f=16&t=4767&p=21890&hilit=jodconverter#p21890
https://forum.openoffice.org/en/forum/viewtopic.php?f=16&t=4767&p=21948&hilit=jodconverter#p21948
这些是我采取的步骤:
- 在一个全新的 EC2 Amazon 实例上,我安装了 libre office commons
$sudo apt-get install libreoffice-common
然后是 Maven
运行我正在使用的服务(也尝试使用 sudo)
$soffice -nologo -nofirststartwizard -headless -norestore -invisible "-accept=socket,host=localhost,port=8100,tcpNoDelay=1;urp;"
所有端口和所有证券都对 ec2 实例开放
这是我的代码
import com.artofsolving.jodconverter.DocumentConverter;
import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;
import java.io.File;
/**
* soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
*/
public class testrun {
public static void main(String[] args){
try {
File inputFile = new File("./test.html");
File outputFile = new File("./OK.pdf");
// connect to an OpenOffice.org instance running on port 8100
SocketOpenOfficeConnection connection = new SocketOpenOfficeConnection("127.0.0.1", 8100);
connection.connect();
// convert
DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
converter.convert(inputFile, outputFile);
// close the connection
connection.disconnect();
}catch (Exception e){e.printStackTrace();}
}
}
- 这是我的 pom.xml
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion>
<groupId>izbr</groupId>
<artifactId>izbr</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- https://mvnrepository.com/artifact/com.artofsolving/jodconverter -->
<dependency>
<groupId>com.artofsolving</groupId>
<artifactId>jodconverter</artifactId>
<version>2.2.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.4.3</version>
</dependency>
</dependencies>
我的 Java 版本是 openjdk 版本“1.8.0_91” OpenJDK 运行时环境 (build 1.8.0_91-8u91-b14-0ubuntu4~14.04-b14) OpenJDK 64 位服务器 VM(内部版本 25.91-b14,混合模式)
当我跑步时
$mvn exec:java -Dexec.mainClass="testrun"
错误是: 116 [testrun.main()] 信息 com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection - 已连接 com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException:转换失败:无法保存输出文档 在 com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter.loadAndExport(OpenOfficeDocumentConverter.java:144) 在 com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter.convertInternal(OpenOfficeDocumentConverter.java:120) 在 com.artofsolving.jodconverter.openoffice.converter.AbstractOpenOfficeDocumentConverter.convert(AbstractOpenOfficeDocumentConverter.java:104) 在 com.artofsolving.jodconverter.openoffice.converter.AbstractOpenOfficeDocumentConverter.convert(AbstractOpenOfficeDocumentConverter.java:74) 在 com.artofsolving.jodconverter.openoffice.converter.AbstractOpenOfficeDocumentConverter.convert(AbstractOpenOfficeDocumentConverter.java:70) 在 testrun.main(testrun.java:24) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:294) 在 java.lang.Thread.run(Thread.java:745) 引起:java.lang.reflect.UndeclaredThrowableException 在 com.sun.proxy.$Proxy26.storeToURL(未知来源) 在 com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter.storeDocument(OpenOfficeDocumentConverter.java:156) 在 com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter.loadAndExport(OpenOfficeDocumentConverter.java:140) ... 11 更多 引起:com.sun.star.ucb.InteractiveAugmentedIOException:打开文件时出错 在 com.sun.star.lib.uno.environments.remote.Job.remoteUnoRequestRaisedException(Job.java:187) 在 com.sun.star.lib.uno.environments.remote.Job.execute(Job.java:153) 在 com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:349) 在 com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:318) 在 com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter(JavaThreadPool.java:106) 在 com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:657) 在 com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.request(ProxyFactory.java:159) 在 com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.invoke(ProxyFactory.java:141) ... 14 更多
我已经尝试了所有建议,例如列出侦听端口,然后更改 soffice 的端口号。也作为 sudo 运行,等等。 没有解决方案有帮助。我已经在 /usr/bin/soffice /usr/bin/X11/soffice 上完成了 chmod 777 ,但没有奏效。
请注意,它在我的机器上运行,但在 Amazon ec2 上却没有,即使所有端口和服务都打开了!
【问题讨论】:
标签: amazon-ec2 type-conversion runtime-error libreoffice