springside4搭建过程简要

最近要使用springside作为整合框架来进行平台组的开发,匆忙搭建了一个quickstart演示工程.记录一下当时的过程:

  1. 下载springside4-4.1.0.GA.zip
  2. 解压好工程组,import到eclipse,有些版本可能需要在解压文件夹里运行mvn eclipse:eclipse命令来初始化eclipse工程,否则无法直接导入
  3. 在修改quickstart之前需要先在maven中安装springside的core,engine等核心包,需要进入到解压缩的目录\springside4-4.1.0.GA\modules 先运行mvn install 完成quicksitart所依赖的核心库的安装
  4. 这个时候出现了一个core包的mvn编译异常,简单的来说就是core工程里的jasonmapper类泛型编译发生错误,可以通过去springside4.4.1的资源库下载新的代码替换即可
  5. 打开quickstart工程里的pom.xml,修改里面数据库部分的依赖,把默认的h2改为oracle
    <!-- 项目属性 -->
    		<!-- 
    			<jdbc.driver.groupId>com.h2database</jdbc.driver.groupId> 
    			<jdbc.driver.artifactId>h2</jdbc.driver.artifactId> 
    			<jdbc.driver.version>${h2.version}</jdbc.driver.version> 
    			-->
    		<jdbc.driver.groupId>com.oracle</jdbc.driver.groupId>
    		<jdbc.driver.artifactId>ojdbc6</jdbc.driver.artifactId>
    		<jdbc.driver.version>11.2.0.1.0</jdbc.driver.version>
     
  6. 这里有一个问题就是ojdbc的mvn配置不是能够自动下载的,只能先手工下载ojdbc6,然后通过mvn install命令将jar包安装到mvn repo中再刷新下工程,就ok了
  7. 再修改dbprofile里transaction的配置
    <!-- 刷新开发环境数据库 -->
    		<profile>
    			<id>refresh-db</id>
    			<build>
    				<plugins>
    					<plugin>
    						<groupId>org.apache.maven.plugins</groupId>
    						<artifactId>maven-antrun-plugin</artifactId>
    						<configuration>
    							<target>
    								<property
    									file="src/main/resources/application.development.properties" />
    								<property file="src/main/resources/application.properties" />
    								<sql driver="${jdbc.driver}" url="${jdbc.url}" userid="${jdbc.username}"
    									password="${jdbc.password}" onerror="continue"
    									encoding="${project.build.sourceEncoding}">
    									<classpath refid="maven.test.classpath" />
    									<transaction src="src\main\resources\sql\oracle\schema.sql" />
    									<transaction src="src\test\resources\data\oracle\import-data.sql" />
    								</sql>
    							</target>
    						</configuration>
    					</plugin>
    				</plugins>
    			</build>
    		</profile>
     
  8. 这里配置的两个sql,默认工程里是无法在oracle下运行的,需要稍微修改一下
    drop table ss_task;
    drop table ss_user;
    
    create table ss_task (
    	id number(19,0),
    	title varchar2(128) not null,
    	description varchar2(255),
    	user_id number(19,0) not null,
        primary key (id)
    );
    
    create table ss_user (
    	id number(19,0),
    	login_name varchar2(64) not null unique,
    	name varchar2(64) not null,
    	password varchar2(255) not null,
    	salt varchar2(64) not null,
    	roles varchar2(255) not null,
    	register_date date not null,
    	primary key (id)
    );
    
    
    create sequence ss_seq_task start with 100 increment by 20;
    create sequence ss_seq_user start with 100 increment by 20;
     
    /* Formatted on 2013/10/18 16:28 (Formatter Plus v4.8.8) */
    INSERT INTO ss_task
                (ID, title, description, user_id
                )
         VALUES (1, 'Study PlayFramework 2.0', 'http://www.playframework.org/', 2
                );
    INSERT INTO ss_task
                (ID, title, description, user_id
                )
         VALUES (2, 'Study Grails 2.0', 'http://www.grails.org/', 2
                );
    INSERT INTO ss_task
                (ID, title, description, user_id
                )
         VALUES (3, 'Try SpringFuse', 'http://www.springfuse.com/', 2
                );
    INSERT INTO ss_task
                (ID, title, description, user_id
                )
         VALUES (4, 'Try Spring Roo', 'http://www.springsource.org/spring-roo', 2
                );
    INSERT INTO ss_task
                (ID, title, description, user_id
                )
         VALUES (5, 'Release SpringSide 4.0', 'As soon as posibble.', 2
                );
    
    INSERT INTO ss_user
                (ID, login_name, NAME, PASSWORD,
                 salt, ROLES, register_date
                )
         VALUES (1, 'admin', 'Admin', '691b14d79bf0fa2215f155235df5e670b64394cc',
                 '7efbd59d9741d34f', 'admin', TO_DATE ('2012-06-04 01:00:00','yyyy-mm-dd hh:mi:ss')
                );
    INSERT INTO ss_user
                (ID, login_name, NAME, PASSWORD,
                 salt, ROLES, register_date
                )
         VALUES (2, 'user', 'Calvin', '2488aa0c31c624687bd9928e0a5d29e7d1ed520b',
                 '6d65d24122c30500', 'user', to_date('2012-06-04 02:00:00','yyyy-mm-dd hh:mi:ss')
                );
      
     
  9. 这样配置就基本完成了,接下来运行quickstart\bin\refresh-db.bat  来实现初始化quickstart的数据库
  10. 然后有两种方式来启动项目,第一个就是直接运行工程bin目录下的jetty.bat,还有一个就是通过eclipse(含mvn插件)上的run as maven build,再在配置界面的goals里填入jetty:run
  11. 工程启动后通过,localhost:8080\quickstart即可访问,但基于oracle的项目启动后,创建任务会报id不能为空的错误,原因是task entity里的id 策略在oracle上无法自动产生id,于是需要更改entity包里的task.java
  12. 增加private long id;属性,再增加如下注释配置
    	@Id
    	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SS_SEQ") 
    	@SequenceGenerator(name="SS_SEQ",sequenceName="SS_SEQ_TASK",allocationSize=1)
    	public Long getId() {
    		return id;
    	}
    
    	public void setId(Long id) {
    		this.id = id;
    	}
    
     
  13. 重启项目,功能就都正常了

猜你喜欢

转载自sungine.iteye.com/blog/1962272