类似百度文库阅读器功能出现问题总结

15 篇文章 1 订阅
3 篇文章 0 订阅
一、环境:ubuntu12.04、centos6.2

二、用到的开源软件或工具:

jodconverter2.2.2、OpenOffice.org 3.4.1、swftools-0.9.1、enca1.13、FlexPaper-2.0.2
软件或工具可自己搜索下载。

三、出现问题

1)OpenOffice.org安装不成功(表现为:在dash下,搜OpenOffice搜不到)
解决方法:
在Ubuntu12.04下,安装OpenOffice前,确保先将 libreOffice完全卸载,方法如下:
        dpkg --get-selections | grep office
        sudo apt-get purge libreoffice*
参考网址:
http://blog.sina.com.cn/s/blog_4cbc1c1201019efr.html
http://forum.ubuntu.org.cn/viewtopic.php?p=2373158

在centos下,注意选择与系统相对应的rpm包。
centos下,完全卸载OpenOffice
rpm -e `rpm -qa |grep openoffice` `rpm -qa |grep ooobasis`
yum remove openoffice.org*
yum remove openoffice.org-core
(这样应该是完完全全删除了)

2)bug1:could not save output document; OOo errorCode: 525
解决方法:
将tomcat与soffice的启动用户设为同一个人。
以ubuntu为例:
启动tomcat:
cd /usr/local/tomcat6 (这个为tomcat的安装目录)
sudo sh startup.sh

启动soffice:
cd /opt/openoffice.org3/program
sudo soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &

ps aux|grep tomcat 查看tomcat进程
ps aux|grep soffic 查看soffice进程
sudo netstat -nap |grep soffice 查看soffice端口
(一定确保正确启动soffice服务,莫名出现的错误都有可能是这个服务没正确启动造成的)

3)Ubuntu下启动tomcat,找不到这个进程
比如:cd /usr/local/tomcat6
     sudo sh startup.sh
然后:ps aux|grep tomcat,却找不到这个进程
解决方法:
sudo vi /etc/environment,将下面语句添加进去(注意你自己的tomcat安装目录)
CATALINA_BASE=/usr/local/tomcat6
CATALINA_HOME=/usr/local/tomcat6
CATALINA_TMPDIR=/usr/local/tomcat6/temp
JRE_HOME=/usr/lib/jvm/java-6-sun
CLASSPATH=/usr/local/tomcat6/bin/bootstrap.jar

4)bug2:inputFormat is null(表现为:所有文档后缀名为docx的,都报这个错)
解决方法:将用到的jodconverter,请至少使用2.2.2及以上的版本

5)bug3:could not obtain service: com.sun.star.ucb.FileContentProvider
这个的出错原因很纠结,网上给出的答案即使是解决了,也让人莫名其妙。
解决方法:
测试tomcat、OpenOffice服务,端口是否都正常。应用配置是否正常等。完全无果,那就重装,再重启吧。
(注意确保soffice服务正确启用)

6)eclipse安装Fat Jar Exporter插件(这个自行google)

7)eclipse导入jar包:
在Eclipse;菜单里操作:wiodow----→Preferencs---→server-----→Runtime-→Environments→进入一个对话框单击Add

8)文档转化成的pdf文件出现乱码(主要表现为文档后缀名为txt的文件)
这个问题也很纠结。开始以为是字体文件的问题,于是将jre、openoffice、ubuntu(centos)下的字体文件都改动了(没有效果)
第二种方法(网上各大博客转载公认的)是将.txt这个文件的后缀名直接改成.odt再上传(已试,没有效果,为什么没有效果,有时间再查查吧)
第三种方法,将用户上传的文档编码转换成UTF-8(注意到windows下用户的txt文档大部份是默认保存为gbk的),采用enca这个工具进行转码。
方式一可以利用 Runtime.getRuntime().exec()来一条一条进行编码转换。
还有一种处理方式是,直接采用shell脚本进行批量转换。

采用enca有一个弊端,它会小概率地出现unreconginize的情况,这就意味着文档编码转换不成功了。

9)bug4:too many open files(常见于高并发访问文件系统,多线程网络连接等场景)
意味着,一次要转变的文档格式的量太大的话,会出现这种情况。
解决方法:
只能尽量避免这种情况了。


无意间看到一位哥哥也有总结:http://blog.newxd.com/5108.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值