在Eclise Virgo 上运行Struts2+Spring3+hibernate3.5

 

简介

这是一个在 Eclipse Virgo 中运行 Struts2 + Spring3 + JPA2(Hibernate 3.5) 的例子。非常简单。

本例子采用 maven 2.2.1 + Spring Tool Suite 2.3.3.M2 + Virgo 2.1.0.M02-incubation 开发,请同学们自行安装。

注意:

  1. 如果你和我一样用Linux作为开发环境的话,建议将STS 安装在用户目录下。大家还需要将 Spring Tool Suite 2.3.3.M2 更新到最新,因为M2版本存在一些bug,导致无法正确生成 OSGi 所需要的 METAINF.MF 文件。
  2. 同时启动 eclipse 后,请务必将workspace指向你的用户目录。这是为了让 STS 能够正确的部署项目。不要问我为什么需要这么做,我也不清楚,还花了我好久才解决这个问题。不过项目源代码可以在其他目录,这算是个好消息吧。
  3. 在 Virgo 2.1.0.M02-incubation 的内核中存在一个bug。当 struts2 和 xwork 查找类文件时,会报NPE的错误,导致Struts2 无法在Virgo上运行。同学们需要自行下载最新的 org.eclipse.virgo.kernel 源代码,编译后,替换 ${virgo.install.dir}/lib/org.eclipse.virgo.osgi.extensions.equinox-2.1.0.M02-incubation.jar 文件。如何编译virgo ,请查看virgo wiki。

 

运行步骤

安装共享的打包脚本

 

$ svn co http://tuberose.googlecode.com/svn/trunk/tuberose-build
$ cd tuberose-build 
$ make install
 

 

下载并安装专门为本项目写的共享库

 

$ svn co http://tuberose.googlecode.com/svn/trunk/libraries/
$ cd libraries
$ mvn install
 

 

maven执行完毕后,大家可以在assembly/target/artifacts 目录下找到五个jar,请将这五个jar复制到 ${virgo.install.dir}/repository/user 目录下。

 

从 spring repository 下载所需要的共享库

为了方便,建议大家启动STS,并在Server视图中添加Virgo。然后大家可以双击Server视图中Virgo,打开Virgo的管理界面。在Repository页签中,大家可以直接搜索共享库,并安装。这个功能非常赞!

需要的共享库列表:

 

 

com.springsource.freemarker-2.3.15.jar
com.springsource.javassist-3.9.0.GA.jar
com.springsource.javax.persistence-2.0.0.jar
com.springsource.javax.validation-1.0.0.GA.jar
com.springsource.net.sf.cglib-2.2.0.jar
com.springsource.org.apache.commons.collections-3.2.1.jar
com.springsource.org.apache.commons.dbcp-1.2.2.osgi.jar
com.springsource.org.apache.commons.lang-2.4.0.jar
com.springsource.org.apache.commons.logging-1.1.1.jar
com.springsource.org.apache.commons.pool-1.3.0.jar
com.springsource.org.apache.tools.ant-1.7.1.jar
com.springsource.org.aspectj.tools-1.6.8.RELEASE.jar
com.springsource.org.dom4j-1.6.1.jar
com.springsource.org.h2-1.0.71.jar
com.springsource.org.junit-4.5.0.jar
com.springsource.org.objectweb.asm-1.5.3.jar
com.springsource.org.ognl-2.7.3.jar
com.springsource.org.xmlpull-1.1.4.c.jar
com.springsource.slf4j.org.apache.commons.logging-1.5.6.jar
 

 

好吧,我老实交代,这里的列表可能并不是所有都是必须的,实在是我的目录中已经下载并安装的共享库太多了,我就按照经验挑选了一些我认为需要的。不过这些库大部分都是常用的,大家就都先装上吧,说不定以后会用到。:D

装好以后,大家启动一下virgo,看一下是否会报错。

 

下载例子源代码

 

$ svn co http://tuberose.googlecode.com/svn/trunk/struts2-example
$ cd struts2-example
$ mvn clean package
 

 

将例子导入到STS

 

大家可以用 Import > General > Existing Projects Into Workspace 方式导入。一共有四个项目。

如果导入没问题的话,所有项目应该都是OK的,项目图标上没有讨厌的红叉叉。

 

启动数据库并准备数据

 

进入 db 目录,运行 run.sh。然后再开启一个命令窗口,执行 db 目录下的 data.sh。

 

发布并运行

 

将 example 项目添加到 Virgo Server 中去,并启动 Virgo Server。

 

然后在浏览器中输入: http://localhost:8080/example/main/home?userId=3 。一切正常的话,大家应该可以在浏览器上看到 “The ok message is Hello Glyn! ”当然大家可以尝试userId的值,输出的内容也会不一样。

 

运行步骤先介绍到这里,祝大家一切顺利!

 

当然,其中还是有一些诀窍的,同学们先自行探索吧,我会在后面的文章中解释。

 

原文地址:  http://code.google.com/p/tuberose/wiki/Struts2ExampleOnVirgo

 

你可能感兴趣的:(apache,eclipse,spring,SVN,osgi)