用好SSH (Struts2+Spring+Hibernate) - AppFuse 2.1.0.M2 的安装运行步骤

AppFuse对于想要用好SSH (Struts2, Spring, Hibernate)的朋友来说,是不可多得的宝贵范例。

 

我最近正在研究SSH,并且想用学到的SSH技术,开发一个论坛项目。

 

我发现,学好SSH和用好SSH真是两件完全不同的事情。“学好”是针对基本概念,而“用好”是针对最佳实践。

 

我在SSH的基本概念学了一阵后,到要动手写代码了,却发现无从下手。因为SSH是3个既相对独立,又相互关联的框架。要想把SSH这3个框架整合到1个项目中,并且要用一些最佳实践整合好,并不是一件容易的事情。

 

AppFuse正好做了整合SSH的事情,从2007年7月11日推出AppFuse 2.0 RC1,到现在的2.1.0.M2,不仅整合好了SSH,还整合了Maven, Spring Annotations, JSF, Spring MVC, Stripe, Tapestry 5, Wicket, JDK5, Annotations, JSP 2.0, Servlet 2.4, JPA.

 

把最新版的AppFuse 2.1.0.M2范例下载下来,编译打包运行,这期间遇到了不少问题,不过还好,基本上都被我给解决了。现在快要把AppFuse的Tutorial阅读并且运行完了。

 

这篇博文主要是把AppFuse 2.1.0.M2的安装运行步骤总结一下,以后会继续把AppFuse的使用经验和大家分享。

 

1. 运行环境

  安装好以下环境(我用的是Windows 7 Home):

  Java SE 1.6.0_23

  MySQL Server 5.1

  Maven 3.0.3 和 2.2.1 (一般情况下用Maven 3.0.3, 有些情况下AppFuse的操作Maven 3.0.3会报错,那时就用2.2.1)

  Tomcat 7.0.2

 

2. AppFuse Quickstart

  打开AppFuse Quickstart页面备查:http://appfuse.org/display/APF/AppFuse+QuickStart

 

3. 生成basic范例

  在一个空文件夹下,从命令行提示窗口,运行Quickstart中下面的范例生成命令

mvn archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-struts-archetype -DarchetypeVersion=2.1.0-M2 -DgroupId=com.mycompany -DartifactId=myproject

 

上述命令在Maven 3.0.3下运行成功后,会在当前文件夹下,生成一个myproject目录。进入目录,会看到范例源代码。

 

4. 修改double webapp folders问题

  AppFuse有一个bug,就是在上述范例源代码的src/main/java和src/test/java目录下,会有两个连续的webapp文件夹。自己手工把model和最后一个webapp文件夹都上移一个文件夹的位置,并且删除多余的webapp就好了。

 

5. MySQL的root的password

  在pom.xml文件结尾处,找到MySQL的root的password的元素,写上你的root的口令。pom.xml默认root的口令是空。

 

6. 编译打包

  在myproject目录下,在命令行提示窗口,运行下面的命令打WAR包:

mvn package

 

7. 运行

  把myproject/target目录下的WAR包,部署到你的Tomcat服务器上,并且让MySQL处于运行状态,启动Tomcat,在浏览器中输入http://localhost:8080/<WAR 包文件名>,就能看到login界面,用户名和口令都是admin,登录进入AppFuse范例系统。

 

8. 生成Eclipse项目文件

  运行下面的命令,生成Eclipse项目文件,便于import到你的Eclipse中读代码。

mvn org.apache.maven.plugins:maven-eclipse-plugin:2.6:eclipse -DdownloadSources=true -DdownloadJavadocs=true

 

如果你用MyEclipse, 可以把上述命令中的eclipse换成myeclipse。

 

这样就把AppFuse的basic范例安装配置运行起来了,不过目前你下载的是embedded模式的AppFuse,即仅有AppFuse的用户端源代码,还没有AppFuse的核心模块源码。

 

如果你想看AppFuse的包括用户端和核心模块的所有代码,可以在另一个空的文件夹中,执行上述第3到7步,然后再执行下面的操作就可以了:

 

9. 修改pom.xml

打开pom.xml, 在appfuse-maven-plugin元素的configuration子元素中,插入下面一行,否则你会看到“svn: PROPFIND request failed”之类的错误。

<trunk>https://svn.java.net/svn/appfuse~svn/</trunk>

 

10. 切换Maven到2.2.1

通过环境变量设置,把M2_HOME改为Maven 2.2.1的目录,这样就把Maven从3.0.3换成了2.2.1。然后重新打开一个命令提示窗口,在有pom.xml的目录下,执行下面的命令。若你还用Maven3.0.3,你会看到“Embedder”相关的错误提示。

mvn appfuse:full-source

 

 

接下来,你就可以用Eclipse看AppFuse的代码,用Maven打包运行,再对照着读AppFuse 的Tutorials (http://appfuse.org/display/APF/Tutorials )了。

 

 

发布了24 篇原创文章 · 获赞 3 · 访问量 4万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章