这不是转发,我要求 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运行时环境(版本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()] INFO com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection - 已连接com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException:转换失败:无法在com.artofsolving中保存输出文档 . jodconverter.openoffice.converter.OpenOfficeDocumentConverter.loadAndExport(OpenOfficeDocumentConverter.java:144)at com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter.convertInternal(OpenOfficeDocumentConverter.java:120)at com.artofsolving.jodconverter.openoffice.converter.AbstractOpenOfficeDocumentConverter . 转换(AbstractOpenOfficeDocumentConverter.java:104)com.artofsolving.jodconverter.openoffice.converter.AbstractOpenOfficeDocumentConverter.convert(AbstractOpenOfficeDocumentConverter.java:74)at com.artofsolving.jodconverter.openoffice.converter.AbstractOpenOfficeDocumentConverter.convert(AbstractOpenOfficeDocumentConverter.java:70)在testrun.main(testrun.java:24)sun.reflect.Na位于sun.reflect.DeativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)的sun.ethlectAccessorImpl.invoke0(Native Method)位于sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)的java.lang.reflect.Method.invoke(方法 . java:498)在org.codehaus.mojo.exec.ExecJavaMojo $ 1.run(ExecJavaMojo.java:294)at java.lang.Thread.run(Thread.java:745)引起:java.lang.reflect.UndeclaredThrowableException at at com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter.storeDocument(OpenOfficeDocumentConverter.java:156)com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter.loadAndExport(com.sun.proxy . $ Proxy26.storeToURL(未知来源) OpenOfficeDocumentConverter.java:140)... 11更多引起:com.sun.star.ucb.InteractiveAugmentedIOException:com.sun.star.lib.uno.environments.remote.Job.remoteUnoRequestRaisedException(作业)文件打开期间发生错误.java:187)在com.sun.star.lib.uno.environments.re mote.Job.execute(Job.java:153)位于com.sun.star.lib.uno.environments的com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:349) . remote.JobQueue.enter(JobQueue.java:318)at com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter(JavaThreadPool.java:106)at com.sun.star.lib.uno.bridges . java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:657)位于com.sun.star.lib.uno的com.sun.star.lib.uno.bridges.java_remote.ProxyFactory $ Handler.request(ProxyFactory.java:159) . bridges.java_remote.ProxyFactory $ Handler.invoke(ProxyFactory.java:141)... 14更多
我已经尝试了所有建议,例如列出监听端口,然后更改soffice的端口号 . 也作为sudo运行,依此类推 . 没有解决方案帮助我在/ usr / bin / soffice / usr / bin / X11 / soffice上做了一个chmod 777,但是没有用 .
请注意,即使所有端口和服务都已打开,它仍在我的mahcine上工作,但不在亚马逊ec2上!
1 回答
编辑:这对我有用,调整代码的步骤 . 更改文件夹的权限和我发现的其他答案根本没有帮助 . 我自己想出来了 .
升级/更新实例
$ sudo apt-get升级
$ sudo apt-get update
$ sudo add-apt-repository ppa:webupd8team / java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
$ sudoapt-get install oracle-java8-set-default
$ sudo add-apt-repository“deb http://ppa.launchpad.net/natecarlson/maven3/ubuntu exact main”
$ sudo apt-get update
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6DTHIS_IS_HEX_FROM_ERRORFA0101
$ sudo apt-get install maven3
$ sudo ln -s / usr / share / maven3 / bin / mvn / usr / bin / mvn
$ sudo apt-get update
$ sudo apt-get install libreoffice
$ sudo apt-get install libreoffice-common
$ soffice -nologo -nofirststartwizard -headless -norestore -invisible“-accept = socket,host = localhost,port = 8100,tcpNoDelay = 1; urp;”
$ nano pom.xml
答:OpenOfficeConnection连接=新的SocketOpenOfficeConnection(8100);
B:SocketOpenOfficeConnection connection = new SocketOpenOfficeConnection(“127.0.0.1”,8100);
$ mvn clean install
$ mvn exec:java -Dexec.mainClass =“testrun”