전자정부 프레임워크의 Simple homepage는
default로 hsql로 되어있다.
이것을 mysql로 바꾸려면
기존 hsql로 되어있는 설정을 mysql로 바꾸면 된다.
(hsql의 GlobalsDriverClassName, Blobals.Url 은 지우거나 주석처리)
# DB서버 타입(mysql,oracle,altibase,tibero) - datasource 및 sqlMap 파일 지정에 사용됨 Globals.DbType = mysql Globals.UserName=접속할 아이디(root) Globals.Password=비밀번호
# mysql Globals.DriverClassName=net.sf.log4jdbc.DriverSpy Globals.Url=jdbc:mysql://127.0.0.1:3306/sht |
저 파일만 바꾸고 RUN as Server 로 실행시키면 net.sf.log4jdbc.DriverSpy 가 없다고 에러가 난다.
aused by: org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'net.sf.log4jdbc.DriverSpy' at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1429) ~[commons-dbcp-1.4.jar:1.4] at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371) ~[commons-dbcp-1.4.jar:1.4] at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) ~[commons-dbcp-1.4.jar:1.4] at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:204) ~[spring-jdbc-4.2.4.RELEASE.jar:4.2.4.RELEASE] ... 54 more Caused by: java.lang.ClassNotFoundException: net.sf.log4jdbc.DriverSpy |
pom.xml 파일에서도 해당 설정을 바꿔줘야 한다.
hsql 은 주석또는 제거하고
<!-- <dependency> <groupId>org.hsqldb</groupId> <artifactId>hsqldb</artifactId> <version>2.3.2</version> </dependency> --> <!-- mysql driver --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.31</version> </dependency> |
주석처리되어있는 log dependency도 주석 제거한다.
<!-- log4jdbc driver --> <dependency> <groupId>com.googlecode.log4jdbc</groupId> <artifactId>log4jdbc</artifactId> <version>1.2</version> <exclusions> <exclusion> <artifactId>slf4j-api</artifactId> <groupId>org.slf4j</groupId> </exclusion> </exclusions> </dependency> |
그다음 RUN as Server 했을 때 no bean named 에러가 나면
src/main/resources/egovframework/spring/com/context-properties.xml
파일에 공백을 넣든 뭐든 해서 수정한 다음 저장한다.
ERROR org.springframework.web.servlet.DispatcherServlet - Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'EgovFileMngUtil': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'propertiesService' is defined
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'propertiesService' is defined |
그러면 될 줄 알고 가동하면 db명을 모르겠다는 에러가 난다.
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Unknown database 'sht') |
말그대로 sht라는 database가 없다는 에러다.
기본설정으로 sht로 설정되어있으므로
mysql에 생성한 db명을 써야한다. (나의경우 egov_simplehome)로 해서 바꿔주었다.
src/main/resources/egovframework/egovProps/globals.properties
# mysql Globals.DriverClassName=net.sf.log4jdbc.DriverSpy Globals.Url=jdbc:mysql://127.0.0.1:3306/egov_3_7 |
그리고 가동을 하면...
Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'egov_simplehome.lettnbbs' doesn't exist |
테이블이 없다고 하네...
프로젝트 아래 DATABASE 폴더에 XXX_mysql.sql 파일이 두 개 있다.
ddl 먼서 import 한뒤에
data를 import 하면
다음과 같이 붐~~
로그인을 해 보자
( 암호화 되기 때문에 찾기 힘들었음 ㅜㅜ, egov, admin 등등 해 봤으나 ...결국 찾아 냄)
(data insert 할 때 admin이 추가되었다.)
id : admin
pw : 1
크롬에서는 근데 깨지네..
이거야 뭐 차차 해결해 나가면 되는거고
어쨌거나... 그냥 옮기기도 어렵네 그랴..