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)了。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/bwwlpnn/archive/2011/04/01/6295990.aspx