阿u第四季:使用appfuse遇到的问题及解决办法
来源:百度文库 编辑:九乡新闻网 时间:2024/04/27 05:38:38
花了一个星期,appfuse构建的项目终于在eclipse下面跑起来了,其间碰到了n多问题,步骤记录如下:
1.按照官网http://appfuse.org/display/APF/AppFuse+QuickStart+-+Chinese的步骤来,装好JDK6(注意:JDK5版本太低,会出问题)和Maven。
2.数据库我用的SQL SERVER2005,先建好一个空的数据库,名字跟项目的名字一致,我用的dm.
3.选web框架,如图:
4.看到 BUILD SUCCESSFUL 后,在项目的目录下找到pom.xml打开,将最后面的mysql数据库连接换成sqlserver的,修改密码;
在
据说默认值是2.7,出问题。
5.在您的项目的目录中执行 mvn jetty:run-war。执行过程中会出错,然后停在某个地方不动了。这时查看数据库,表已经建好了,但是app_user这个表没法查看数据,估计是什么连接没有释放,重启数据库,可以查看app_user的数据了。
6.在您的项目的根目录运行 mvn appfuse:full-source,再运行mvn eclipse:eclipse(注意:不是mvn install eclipse:eclipse)。
7.打开myeclipse,导入工程。命令窗口可以关闭了,以后的工作都在myeclipse下进行。
8.打开src/main/resources下的jdbc.properties,将里面的内容填写正确(复制pom.xml里面的内容)。
9.准备部署到tomcat下面,工程名右键-》MyEclipse-》Add Web Project Capabilities
如图,Web Root Directory 选webapp,Create web.xml的勾去掉,j2EE选5.0.
10.部署到tomcat下面,启动tomcat,报错,slf4j版本太高,将slf4j-api-1.6.1.jar和jcl-over-slf4j-1.6.1.jar都换成1.5.6版的。
11.重新部署,重启tomcat,报错:java.lang.NoClassDefFoundError: org/aspectj/weaver/tools/PointcutExpression
缺包,引入aspectjweaver-1.6.10.jar。
12.重新部署,重启tomcat,报错:java.lang.IllegalArgumentException: No entities listed to be indexed, have you defined your entities correctly?
用到了compass,本人不会用,本项目也用不着,决定去掉compass:
a.删去对compass-2.2.0.jar的引用。
b.删去User.java和Address.java里面的相关内容。
c.删去GenericManagerImpl.java里面的public List
d.删去StartupListener.java里面的相关内容。
e.删去包edu.ctgu.webapp.search。
f.删去applicationContext-dao.xml和applicationContext.xml里面的相关内容。
13.重新部署,重启tomcat,报错:Exception sending context initialized event to listener instance of class edu.ctgu.webapp.jsp.EscapeXmlELResolverListener
不知道怎么解决,去掉:在web.xml里面注释掉
14.重新部署,重启tomcat,终于不报错了。从浏览器访问,出错:Unable to read TLD "META-INF/displaytag.tld",Unable to read TLD "META-INF/c.tld"
包冲突,删除对servlet-api.jar jsp-api.jar的引用。
15.删掉后重新部署,重启tomcat,没有错误,从浏览器访问,终于出来了,但是页面上有乱码。
命令行敲命令native2ascii -encoding utf-8 native2ascii -encoding UTF-8 displaytag_zh_CN_input.properties displaytag_zh_CN.properties将ApplicationResources_zh_CN.properties,displaytag_zh_CN.properties,displaytag_zh_CN.properties将这三个文件转码。注意参数:-encoding UTF-8。再重启tomcat,终于正常了。
16.在src/main/webapp/WEB-INF下建文件夹lib,把tomcat下WEB-INF/lib里面的jar包全拷进去,删除对工程以外的jar包的引用(基本上都是本地maven仓库里的)。这样就可以上传到cvs上共享了。
17.在命令窗口执行:mvn appfuse:gen-model命令,从数据库生成POJO,出错
Can't generate same entities| org.hibernate.cfg.JDBCBinderException: Duplicate class name
因为默认了去生成DBO和SYS等用户下的所有表和视图。出现了重名的POJO,所以报错。
解决办法:target\test-classes\hibernate.reveng.xml 上面加入