关于DocViewer在MyEclipse10.0下的配置



1.解压intelligentcode-DocViewer-ba2994a.zip



2.观察目录结构:.idea,为IDEA集成开发环境的配置目录,可以忽略



docviewer:发现下面有srcWeb应该是一Web工程



docviewerapi:里面全是java类,作者应该想将该部分独立成一个jar包,但还未打包



docviewerflex:如名,Flex工程。打开docviewerflex.iml文件,发现<module
type="Flex" version="4">
,证实是FLEX4,学过一点Flex4,我们只需要它编译生成的swf等文件就行了,源码以后研究。这个编译生成的swf文件类似百度文库的查看文档的swf.



docviewerflex.backup:如名,为备份,跳过



etc:拓展暂不看,看文件名,是什么中文处理的问题



lib:项目依赖到的jar包,但在MyEclipse中默认的WEB项目是添加了j2ee6库的。



3.开始迁移到myeclipse:建一个docviewerweb项目(注意项目的Web根目录指定要为“web“,后面就是我没有一开始设置webroot的问题),导入docviewer的文件,发现webWebRoot不同,修改它,把WebRoot弄掉,可以在工程上右击-properties->myeclipse->web->右侧的ContextRoot修改。把多的J2EE5Library去掉。把WebRoot删掉。发现有好多错误,全是 类找不到,说明类没有导入完成。



建一个docviewerapijava项目,把docviewerapi的代码导入,发现仍然好多错--



忘了jar包呀,是不,把jar包一股脑导入进两个工程,当然,你想一个个的导,避免,也行,就是耗时间。我是不想再这么弄了,麻烦。别忘了加buildpath,然后有一点,把docviewerapi加入到docviewerbuildpath当中去。



具体操作是在ReferencedLiberaries中,大根就是在buildpath中添加docviewerapibin目录



PS,如果一切都做完了,错误仍然在?那么请按:alt+p,然后选择clean....



发布,启动,失败,看异常,看causeby Filter mapping must specify
either a <url-pattern> or a <servlet-name>



这个错误是myeclipse10.0出现的,在myeclipse8.6不会出现。修改web.xml中的如下处:



<filter-mapping>

<filter-name>uploaderFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>



重启。报:java.lang.ClassNotFoundException:
com.log4ic.utils.support.DocViewerServiceListener
,定位:在docviewerapi中,看来不能通过添加其它工程的bin目录来添加依赖(实验失败),怒了,把docviewerapi中的src拷到docviewersrc,合并后(ant脚本也可以考,那个xml文件里有依赖关系的。),重新发布,启动,这次应该报数据库连接错误了吧。X,仍然报java.lang.ClassNotFoundException:
com.log4ic.utils.support.DocViewerServiceListener//
经过一系列与buildpath斗争之后,修复了



看发布目录下:没在类文件....检查发现WebRoot没有删掉,lib包也加错地方了,应该放到Web下面,放了之后,为什么没有起作用?检查。。。 <classpathentry
kind="output" path="WebRoot/WEB-INF/classes"/>
最后在工程的.classpath发现了这东西,输出地方不对,难怪。但是红XX出来了好多,因为jar包们都没加到buildpath的问题



PS,你可以把两个工程的代码合并在一起,形成一个工程。



几经波折,终于到了数据库报错的时候了,哈哈



4.office转换服务启动失败!详细信息:java.lang.IllegalArgumentException:
officeHome must exist and be a directory



这个是:/docviewer/src/conf/docviewer.properties中相应的路径未配正确,改成相应的位置即可,pdf2swf处应加为path或者指定为绝对路径



其中,openOfficeLiberyOffice要进行一个设置,好像是启用一些功能,参看作者吧。



5.dbcp.SQLNestedException: Cannot load JDBC driver class
'org.apache.derby.jdbc.EmbeddedDriver'



这个问题就是,作者用的derby而且是用了数据源的,数据源的配置位置比较难找,在/docviewer/web/META-INF/context.xml内容如下



<?xml version="1.0" encoding="UTF-8"?>

<Context path="/">

<Resource name="jdbc/docviewerDB" auth="Container"

type="javax.sql.DataSource"

driverClassName="com.mysql.jdbc.Driver"

url="jdbc:mysql://localhost:3306/docviewer?characterEncoding=UTF-8"

maxActive="20"

maxIdle="10"

maxWait="5000"

username="root"

password="root"

/>

</Context>



修改配置,改成我的Mysql,相应的改好之后,加一个Mysql的驱动(外部tomcat放在tomcat/common/lib下,集成tomcat放在D:\ProgramFiles\MyEclipse10.0\Common\plugins\com.genuitec.eclipse.easie.tomcat.myeclipse_9.0.0.me201109141806\tomcat\lib下)。具体请百度数据库连接池的配置



终于无错误启动,打开页面一看……..



报了那个NullPointer错误了,参看以前的解决吧,呵呵。

我忘了我是怎么解决的了。。。。

 

root cause

java.lang.NullPointerException
	org.apache.jsp.documents_jsp._jspInit(documents_jsp.java:28)
	org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)
	org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:159)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	com.log4ic.utils.io.FileUploaderFilter.doFilter(FileUploaderFilter.java:32)

把CharsetFilter去掉后仍然报错,把FileUploaderFilter也去掉试试(仍然不行),说明方向走错,弄回去。。。发现web.xml中有一个配置了上传文件路径的地方错了,改之。

我记得好像是javaee5和javaee6的问题。最后,我只有去看了看上次配好的lib包和现在的lib包有什么不同,坑爹,lib/javaee6下的3个jar包只用导javax.per....jar,删除两个(Myeclipse的BUG,在发布的web目录中的lib包没能自动删除,而且手动删除也删除不掉,只能先删除发布,然后删除lib下的两个多余的jar,然后再重新发布),成功,搞定。哈哈、

最后,总结一下,其实docviewerapi是应该作为一个源文件夹导入myeclipse的。

root cause

java.lang.NullPointerException
	org.apache.jsp.documents_jsp._jspInit(documents_jsp.java:28)
	org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)
	org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:159)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	com.log4ic.utils.io.FileUploaderFilter.doFilter(FileUploaderFilter.java:32)

你可能感兴趣的:(javaee,连接池,docviewer)