当前位置: 代码迷 >> Web前端 >> 运用springside3.3.4中的miniweb项目
  详细解决方案

运用springside3.3.4中的miniweb项目

热度:132   发布时间:2012-08-21 13:00:21.0
使用springside3.3.4中的miniweb项目
springside是江南白衣发起的一个javaee开源项目,旨在叫大家熟悉各种框架的用法,简化开发流程,其涉及的技术有,maven,ant,struts2,struts-convetion,spring,spring-security,hibernate,jetty,h2数据库,mysql,oracle等,内容有

webservice,一般的增删改查和日志,事务,权限,切换数据库功能,发邮件,等多种演示示例,由于springside即将迎来4.0版本,所以我先复习一下3.3.4这个版本,简单部署其中的miniweb项目。

1,下载springside3.3.4:地址:

http://sourceforge.net/projects/springside/files/SpringSide%203.0/3.3.x/

这里有3.3.4的all-in-one版本,就是包含了所有需要的内容的版本。

2,安装springside3.3.4并生成项目:

运行springside需要java5.0以上版本,并且配置好JAVA_HOME,CLASSPATH,PATH环境变量,使用java -version;java;javac测试环境变量是否配置成功;需要安装maven,下载地址:

http://maven.apache.org/download.html

并配置好M3_HOME,在path中添加maven的bin目录,使用mvn -version测试maven是否成功:我的显示信息:

C:\Users\ydp>mvn -version

Apache Maven 3.0.3 (r1075438; 2011-03-01 01:31:09+0800)

Maven home: D:\java development\apache-maven-3.0.3\bin\..

Java version: 1.6.0_07, vendor: Sun Microsystems Inc.

Java home: C:\Program Files\Java\jdk1.6.0_07\jre

Default locale: zh_CN, platform encoding: GBK

OS name: "windows vista", version: "6.1", arch: "x86", family: "windows"

另外,我的path信息:

PATH=C:\Program Files\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Win

dows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Pro

gram Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL S

erver\100\DTS\Binn\;C:\Program Files\Common Files\Thunder Network\KanKan\Codecs;

C:\Program Files\Java\jdk1.6.0_07\bin;C:\Program Files\Java\jdk1.6.0_07\jre\bin;

D:\java development\apache-maven-3.0.3\bin;D:\java development\apache-ant-1.8.2\

bin;C:\Program Files\SSH Communications Security\SSH Secure Shell

我们再配置一个ant,下载地址:

http://ant.apache.org/bindownload.cgi

配置好ANT_HOME和path;使用ant -version命令测试:

Apache Ant(TM) version 1.8.2 compiled on December 20 2010

当所有环境配置成功后,进入到springside的解压目录,其目录结构如下:
2011/05/09  09:45    <DIR>          examples
2010/08/14  01:07               347 generate-project.bat
2010/05/15  17:10            11,561 LICENSE.txt
2011/05/09  10:09    <DIR>          logs
2011/05/09  09:45    <DIR>          modules
2010/09/05  00:26               998 pom.xml
2010/09/16  00:12             1,805 quick-start.bat
2011/05/09  09:45    <DIR>          servers
2011/05/09  09:46    <DIR>          tools
双击运行quick-start.bat,运行过程中会打开4个窗口,h2数据库,miniservice,miniweb,showcase;按wiki(详细信息请参见springside wiki:
http://wiki.springside.org.cn/display/SpringSide3/Home)上说的,会依次完成下面一些动作:
启动自带的H2示例数据库。(等同执行tools/h2/start-db.bat)
将tools/maven/central-repository中的jar文件拷贝到本地仓库, 如C:/Document and Setting/用户名/.m2/repository
编译安装所有子项目。(等同执行项目中的bin/install.bat)
为所有子项目生成Eclipse项目文件。(等同执行每个项目中的bin/eclipse.bat)
为三个Examples项目分别执行初始化数据库,并使用Jetty运行。(等同执行每个项目中的bin/db-init.bat 与 jetty.bat)
如果出现以下信息,则表示运行完毕:
Total time: 0 seconds
[INFO] SpringSide3.0 快速启动完毕.
[INFO] 可访问以下演示网址:
[INFO] http://localhost:8083/mini-service
[INFO] http://localhost:8084/mini-web
[INFO] http://localhost:8085/showcase
Press any key to continue . . .
此时,可以打开上面的链接,先睹为快,欣赏springside的功能演示,这个过程中可能会出现很多错误,我不打算一一解决,也不去管它,只要这几个页面可以完整演示springside的功能即可。
生成项目:双击generate-project.bat;运行过程中会让你输入一些信息,如下:

其中groupId指的是你的组织的名称,由于该项目由我私人贡献,纯属示范用,所以我填了 youxia.personal,因此,在第5个问题上,我选择了personal.you作为我项目中的package的名字,这也是符合国际惯例的;artifactId指的是项目的名字,这里为MultiDatasourceExample,名字有点长,从名字就可以看出来我要示范多个数据源的配置。(该段内容引自:
http://tech.ddvip.com/2009-09/1253780601134201_2.html,可以参考其流程)
该步结束,会在springside目录下生成一个文件夹generated-projects,里面包含了miniweb项目。

3,完成了上面两步,我不打算用那些直接导入的办法来运行miniweb,进入到examples目录。
4,我使用的是eclipse-jee-ganymede-win32版本,apache-tomcat-6.0.32-windows-x86版本,如何使用eclipse开发web项目请参照(http://yuanyu5237.iteye.com/admin/blogs/737905),远程连接mysql(安装在ubuntu下,版本5.1.49),下载mysql驱动,地址http://www.mysql.com/downloads/connector/j/5.1.html;版本5.1.26;
>>>>新建一个dynamic web project,取名miniweb;在和src同级目录(即根目录下)建立两个文件夹java和resources,删除src目录;
>>>>将examples下miniweb中examples\mini-web\src\main\java目录下的全部内容,复制到java目录下;
>>>>将examples下miniweb中examples\mini-web\src\main\resources目录下全部内容复制到resources目录下;
>>>>将examples下miniweb中examples\mini-web\src\main\webapp目录下全部内容复制到WebContent目录下;如果有乱码错误,请修改文件的编码为utf-8(右键,属性,编码);
>>>>将examples\mini-web\target\mini-web-3.3.4\WEB-INF\lib目录下全部的jar文件复制到WebContent目录下WEB-INF中的lib目录下,并将所有jar文件添加到该项目的build path;
>>>>将mysql驱动添加大项目中,并build path;
>>>>在mysql数据库中创建数据库miniweb,默认字符集utf8;
create database miniweb default character set utf8;
use miniweb;
>>>>执行examples\mini-web\src\main\resources\sql\mysql目录下的schema.sql文件,登录到mysql,
source /home/name/schema.sql
>>>>修改数据库编码:
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_database=utf8;
set character_set_results=utf8;
set character_set_server=utf8;
set character_set_system=utf8;
查看编码:
show variables like 'character_set_%';
注意:如果在后面出现admin登录miniweb后,没有权限查看用户信息,则很可能是字符集的原因,从数据库取出的角色名和权限名是乱码无法与spring security配置文件中的角色名,权限名匹配,导致admin用户失去权限。
>>>>添加测试数据,如下:
insert into acct_authority values(1,"浏览用户");
insert into acct_authority values(2,"修改用户");
insert into acct_authority values(3,"浏览角色");
insert into acct_authority values(4,"修改角色");

insert into acct_role values(1,"管理员");
insert into acct_role values(2,"用户");

insert into acct_role_authority values(1,1);
insert into acct_role_authority values(1,2);
insert into acct_role_authority values(1,3);
insert into acct_role_authority values(1,4);
insert into acct_role_authority values(2,1);
insert into acct_role_authority values(2,3);

insert into acct_user values(1,"admin@springside.org.cn","admin","Admin","admin");
insert into acct_user values(2,"user@springside.org.cn","user","User","user");
insert into acct_user values(3,"jack@springside.org.cn","user2","Jack","user2");
insert into acct_user values(4,"kate@springside.org.cn","user3","Kate","user3");
insert into acct_user values(5,"sawyer@springside.org.cn","user4","Sawyer","user4");
insert into acct_user values(6,"ben@springside.org.cn","user5","Ben","user5");

insert into acct_user_role values(1,1);
insert into acct_user_role values(1,2);
insert into acct_user_role values(2,2);
insert into acct_user_role values(3,2);
insert into acct_user_role values(4,2);
insert into acct_user_role values(5,2);
insert into acct_user_role values(6,2);

>>>>>修改application.properties中的配置,注释掉h2有关连接内容,将mysql的连接内容去掉注释,并修改数据库名为
miniweb,修改用户名,密码,保存。
>>>>>修改web.xml文件中spring配置文件的位置,从:
<param-value>
classpath*:/applicationContext.xml
classpath*:/applicationContext-security.xml
</param-value>
改为:
<param-value>
classpath:applicationContext.xml
classpath:applicationContext-security.xml
</param-value>
>>>>>>注释掉applicationContext-security.xml文件中一下内容:
<!-- 服务器生产环境配置
<value>file:/var/mini-web/application.server.properties</value>
-->
>>>>>>在tomcat中添加项目miniweb,启动该项目。那如果中途出现各种错误,请一定google解决。
1 楼 yjmyd1119 2011-08-04  
楼主说的很详细啊!!顶!
2 楼 Rgnrtn 2011-11-26  
按照楼主的做法去配了,但是
<param-value>
classpath*:/applicationContext.xml
classpath*:/applicationContext-security.xml
</param-value>
改为:
<param-value>
classpath:applicationContext.xml
classpath:applicationContext-security.xml
</param-value>
会导致找不到指定文件,不改的话能找到
另外现在会出现:
Exception starting filter springSecurityFilterChain
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSecurityFilterChain' is defined
导包这些都没问题啊