1. Spring @ MVC
웹 호스팅
e-mail : an_1249@naver.com
jesuschrist.ahn@gmail.com
블로그 : ITnMIS.wordpress.com
페이스북 : facebook.com/jesuschrist.ahn
cafe24를 이용한 Spring@mvc 프로젝트 호스팅 방법 및 후기
2. 프로젝트 개발 환경
OS - Mac OS X (VERSION : 10.9.4)
!
IDE - Eclipse(VERSION : Kepler)
!
Language - JAVA( VERSION : JDK 1.7), JSTL(1.2), JSP, HTML5, CSS3
!
미들웨어 - TOMCAT( VERSION : 7.0)
!
DBMS - MySQL ( VERSION : 5.6.19)
!
FRAMEWORK : SPRING@MVC ( VERSION :3.1)
!
ORM : iBatis(VERSION : 2.3)
13. 2.1 FileZilla 설치
좌측 메뉴바 하단의 [웹FTP] 선택 -> 우측 메인화면의 [FileZilla] 다운로드 클릭 -> 고객센터 페
이지로 이동 및 프로그램 설치(windows OS는 고객센터에 설치 방법이 있으니 참조하시면 됩
니다.) *설치과정은 생략하겠습니다.
FTP서버는
*https://filezilla-project.org/
download.php
에서 직접 받으셔도 됩니다.
우측 상단에
[아이디], [도메인], [접속포트]를 잘
기억해두시기 바랍니다.
다음 과정인 [2.2 설정]에서 사용합니
다.
14. 2.2 FileZilla 설정
[우측 상단 아이콘]
또는
[파일]->[사이트 관리자]
클릭
[빠른연결]이 있으나, 지속적인 관리를 위해 [사이트 등록]을 하겠습니다.
15. 1.[새 사이트] 등록
2. [암호화] 선택 :
SFTP or FTP
[호스트]
아이디.cafe24.com
(2.1 설치과정의 도메인
ex : ajh124.cafe24.com)
!
[포트] FTP=21
SFTP = 22
3. [로그온 유형] 일반
[사용자] 아이디 (ex : ajh124)
[비밀번호] 메인 비밀번호 X
*서비스 결제 시 설정한 FTP 비
밀번호
2.2 FileZilla 설정
1
2
3
16. 2.3 프로젝트 업로드
연결이 완료되면 아래와같은 구성으로 좌
측은 [로컬] 우측은 [서버]가 되겠습니다.
프로젝트를 업로드 하겠습니다. 프로젝
트 업로드는
!
1. WAR파일
2. 프로젝트를 통채로 넣기
!
두가지 방법이 있습니다.
그 방법에 대해 알아보도록 하겠습니다.
!
방법을 아신다면 가볍게 pass~
절약형의 경우 서버 폴더이름이 [tomcat] 이며 절약형 이상 버젼부터 [www]로 설정 돼 있습니다.
절약형 이상 버전이신 분들은 [tomcat]을 [www] 로 생각하고 진행하면 될 것 같습니다.
26. 미사용)
저의 경우 프로젝트 진행동안 MAVEN이 아닌 WEN-INF아래의 lib
폴더에 필요한 jar파일들을 모아놓고 프로젝트를 진행하고 있었기
때문에 2번의 방법으로 호스팅을 하겠습니다.
호스팅 대상 서버에 올리는 방법은 두 가지가 존재합니다.
27. 2.3.1 프로젝트 준비하기
➡ 프로젝트 폴더 구성입니다. 이클립스를 사용하신다면 [window]-
[show view]-[navigator]를 통해 실제 폴더 구성을 볼 수 있습니다.
➡ lib폴더안에 필요한 jar파일들(ex: ibatis.jar, mysql-connector-java-
5.1.31-bin.jar, 스프링관련 jar파일 등) 을 넣습니다. (매이븐을 이용한
pom.xml 추가가 아닌 실제 lib폴더에 jar를 가져와서 사용한다고 생각하면 됩니다.)
➡ .java가 있는 src는 호스팅 서버에 올리지 않습니다. 서버에서는 jvm으
로 컴파일 하지 않고 컴파일이 완료된 class파일을 실행시키기 때문이
죠. class파일이 저장되는 곳인 [build] -[classes] 폴더를 서버에 올
려야 합니다.
➡ [WebContent], [classes] 폴더를 업로드 하겠습니다.
Tomcat서버에 올리는 것이기 때문에 Tomcat의 특징을 알고 가면 좋을 것 같습니다.
http://blog.naver.com/PostView.nhn?blogId=seotajilogNo=80200319536
위의 블로그가 친절하게 정리 잘 돼 있으니 참조하신다면 tomact호스팅에 상당히 도움이 될
겁니다.
32. 2.4 DBMS 설정
[사용자명] 아이디
[암호] 서비스 결제 시 설정한 DB암호
접속이 완료되면 오른쪽 창이
뜨게 됩니다.
왼쪽 화면을 통해 DBMS를
설정할 수 있습니다.
DB설정은 SQL로 직접 작업
하는 방법, SQL파일을 가져오
는 방법이 있습니다.
(DB추가 및 설정 생략)
33. 2.4 DBMS 설정
프로젝트에서 db설정은 아래와 같이 해주면 됩니다.
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/[아이디]
jdbc.username=[아이디]
jdbc.password=[MySQL웹 호스팅 비밀번호]
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ajh1249
jdbc.username=ajh1249
jdbc.password=**********
ex)
36. 2.5 ETC - iBatis오류 처리
에러에서 두 문장을 주의 깊게봐야 합니다.
[CharacterEncodingFilter.doFilterInternal]/
[MySQLSyntaxErrorException : Table dosen’t exist]
즉, Table이름을 읽어 내지 못하는 것이죠.
원인은 로컬의 MySQL설정 중에 [lower_case_table_names]의 설정이 다르기
때문입니다.
아래보면 내 컴퓨터(로컬)의 MySQL [lower_case_table_names] 값이 ‘2’ 입니
다. 그러나 cafe24에서 제공하는 MySQL 설정은 ‘0’으로 돼있죠.
로컬에서 됐던 프로젝트가 서버에 올리니 왜 저런오류가 날까?
cafe24의 MySQL로컬의 MySQL
37. [lower_case_table_names] 0 = 테이블 생성 및 조회 시 대/소문자 구분
1 = 모두 소문자로 인식
2 = 윈도우에서 대/소문자 구분
cafe24의 mysql을 set명령으로 변경하는 방법이 있으나, 권한 거
부 에러가 발생합니다. 간단하게 ibatis의 테이블 명과 MySQL의 테
이블 명의 대소문자를 맞춰주면 됩니다.
*참고로 테이블 명 뿐만아니라 속성 값도 맞춰 주어야 합니다. 속성의
대소문자가 다를 경우 아래의 오류가 발생할 수 있습니다.
[해결 방법]
2.5 ETC - iBatis오류 처리
HTTP Status 500 - Request processing failed; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlMapClient'
defined in class path resource [config/applicationContext.xml]: Invocation of init method failed; nested
exception is org.springframework.core.NestedIOException: Failed to parse config resource: class path
resource [config/sqlMapConfig.xml]; nested exception is com.ibatis.common.xml.NodeletException: Error
parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause:
com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error
parsing XPath '/sqlMap/insert'. Cause: com.ibatis.common.beans.ProbeException: There is no READABLE
property named 'WriterId' in class 'model.CeventModel'
38. 이 오류는 개발단계에서 데이터표준화를 무시하여 발생한 사례
입니다. DB설계시 테이블과 속성 명을 대문자로 즐겨 사용하지만
자바의 경우 첫 글자를 소문자로 하는 경우가 많았기 때문에(JSTL
문에서 오류 발생 방지 등..) ibatis를 설정 시, 습관적으로 소문자
로 사용하였기 때문입니다.
프로젝트 시 표준화가 왜 중요한지 느낄 수 있는 기회 였습니다.
2.5 ETC - iBatis오류 처리
39. 웹사이트를 사용하면 NAVER, GOOGLE, DAUM등의 대형 포탈 업체 메일서비스 말
고 자신만의 메일 서비스가 필요할 수 있습니다. cafe24에서는 무료 웹 메일을 제공하
고 있으며 아래의 설정 값을 갖고 있습니다.
host = smtp.cafe24.com
port = 25
user = [아이디]@[아이디].cafe24.com
password=[웹 메일 신청 시 비밀번호]
2.5 ETC - SMTP설정
bean id=mailSender class=org.springframework.mail.javamail.JavaMailSenderImpl
property name=host value=smtp.cafe24.com /
property name=port value=25 /
property name=username value=ajh1249@ajh1249.cafe24.com /
property name=password value=wjdgus!23 /
예제로 헬스짱의 메일설정 xml파일 입니다. 아래와 같이 설정해주면 됩니다!!