존칭은 생략합니다.
1. Tomcat 설치
http://tomcat.apache.org/ 접속해서 다운로드 한다.
이 글에 사용한 버전은 7.0.19 이다. 6.x 버전이 이미 설치 되어 있었으나 이번 기회에 간만에 업글 했다.
zip 버전을 다운 받아서 적당한 곳에 압축을 해제 한다.
내가 설치한 곳은 C:\Server\Tomcat 이다.
그리고 당연히 기본적으로 JDK 는 설치 되어있어야 한다.
JDK 설치는 웹검색을 하기 바란다.
JDK와 Tomcat 까지 설치를 마쳤다면 시스템변수 설정을 해줘야 한다.
아래와 같이 설정한다.
JAVA_HOME C:\Java\jdk1.6.0_18
CATALINA_HOME C:\Server\Tomcat
CLASSPATH .;C:\Java\jre6\lib
그리고 PATH 에 C:\Java\jdk1.6.0_18\bin 추가한다.
도스창을 열고 c:\Server\Tomcat\bin\startup.bat 실행한다. Tomcat이라는 도스창이 하나 더 뜨면 실행이 된 것이다.
오류 메세지가 없는지 확인하고 웹브라우저를 띄워 http://localhost:8080/ 으로 접속해서 뜨는지 확인한다.
Tomcat 서버 관리자로 들어가려면 계정설정을 해줘야한다. Tomcat 하위에 conf 안에 보면 tomcat-users.xml 파일이 열어
<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
-->
이 부분을 주석제거하고 적절하게 수정한 뒤 서버를 재시작 하면 관리자로 접근이 가능하다.
서버를 중지 하려면 도스창처럼 떠있는 서버창에서 Ctrl+C 를 누르면 된다.
그리고 주의 할 것 이 하나 있는데 메모장으로 xml 파일을 열어서 수정하면 기본적으로 ansi로 저장되어서 Tomcat 구동 시 오류가 발생하는 경우가 있다.
다른 이름으로 저장을 선택한 다음 저장 버튼 옆에 인코딩 부분을 UTF-8로 선택하여 저장한다.
아래에 나오는 설정 편집 부분에도 해당되는 내용이니 참고한다.
2. 프로젝트 폴더 생성
Tomcat\webapps 하위에 프로젝트용 폴더를 생성한다.
나는 blazeds_test 라는 폴더를 생성 했다.
3. BlazeDS 설치
https://www.adobe.com/cfusion/entitlement/index.cfm?e=lc%5Fblazeds 에서 다운로드 받는다.
다운 받으려면 Adobe.com 계정이 있어야 한다. 무료 가입이니 계정이 없으면 하나 생성하도록 한다.
다운로드가 3가지 있는데 4M 크기의 BlazeDS binary distribution 파일을 받으면 된다.
다운 받은 zip 파일을 압축 해제하면 war 파일과 htm 파일이 나온다.
적당한 압축해제 프로그램을 사용해 war 파일을 압축 해제 한다. 7-zip을 추천한다.
압축 해제 된 blazeds/WEB-INF/lib 안에 있는 모든 JAR 확장자를 가진 파일을 blazeds_test/WEB-INF/lib 에 복사한다.
blazeds/WEB-INF/flex 폴더 채로 blazeds_test/WEB-INF 안에 복사한다.
4. database connector 설치
자신이 사용하는 DB용 Connector를 설치한다.
나는 MySQL 용 Connector를 설치했다. 설치한 버전은 5.1.17 이다.
http://www.mysql.com/downloads/connector/j/ 에서 다운로드를 받은 파일의 압축을
해제하면 나오는 mysql-connector-java-5.1.17-bin.jar 파일을 blazeds_test/WEB-INF/lib 에 복사한다.
5. 샘플 데이터 생성
데이터베이스를 만든다.
CREATE DATABASE `blazedb_test`;
테이블을 만든다.
CREATE TABLE `blazedb_test`.`users` (
`idx` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(50) NOT NULL,
`age` INT(2) UNSIGNED NOT NULL
) ENGINE=MYISAM;
데이터를 만든다.
INSERT INTO `blazedb_test`.`users` (`idx`, `name`, `age`)
VALUES
(NULL, 'Hugo Reyes', '11'),
(NULL, 'Sayid Jarrah', '13'),
(NULL, 'Jack Shephard', '15'),
(NULL, 'Jin Kwon', '22'),
(NULL, 'Sun Kwon', '14'),
(NULL, 'Kate Austen', '22'),
(NULL, 'John Locke', '24'),
(NULL, 'Claire Littleton', '17'),
(NULL, 'Ben Linus', '22'),
(NULL, 'Desmond Hume', '28'),
(NULL, 'Michael Dawson', '26'),
(NULL, 'Juliet Burke', '20'),
(NULL, 'Miles Straume', '17'),
(NULL, 'Shannon Rutherford', '21'),
(NULL, 'Richard Alpert', '12'),
(NULL, 'Walt Lloyd', '25'),
(NULL, 'Daniel Faraday', '22'),
(NULL, 'Frank Lapidus', '4'),
(NULL, 'Boone Carlyle', '6'),
(NULL, 'Alex Rousseau', '11'),
(NULL, 'James Ford', '15'),
(NULL, 'Charlie Pace', '7');
테이블 생성을 마쳤으면 클래스를 만들어야 한다.
object 와 service 두가지를 만들어야 한다.
나는 c:\Server\Tomcat\webapps\blazeds_test\WEB-INF\classes\kr\pe\kyrandia\ 하위에
objects 와 services 폴더를 만들었다.
각자 자신의 환경에 맞게 폴더를 만들면 된다.
아래 소스를 objects\TestUser.java 로 저장하고 complie 한다.
package kr.pe.kyrandia.objects;
public class TestUser {
private int userIdx;
private String userName;
private int userAge;
public int getUserIdx() {
return userIdx;
}
public void setUserIdx(int userIdx) {
this.userIdx = userIdx;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public int getUserAge() {
return userAge;
}
public void setUserAge(int userAge) {
this.userAge = userAge;
}
}
아래 소스를 services\TestUserService.java 로 저장하고 Compile 한다.
빨간색으로 표시한 곳은 자신의 설정의 맞게 수정한다.
package kr.pe.kyrandia.services;
import java.util.ArrayList;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import kr.pe.kyrandia.objects.TestUser;
public class TestUserService {
public TestUserService() {
}
public ArrayList<TestUser> getAllUsers() {
try {
Class.forName("com.mysql.jdbc.Driver");
}
catch (ClassNotFoundException e) {}
Connection conn = null;
ArrayList<TestUser> users = new ArrayList<TestUser>();
String sql = "SELECT * FROM users";
try {
String url = "jdbc:mysql://localhost/blazeds_testdb";
conn = DriverManager.getConnection(url, "blazeds_testid", "blazeds_testpw");
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
TestUser user = new TestUser();
user.setUserIdx(rs.getInt("idx"));
user.setUserName(rs.getString("name"));
user.setUserAge(rs.getInt("age"));
users.add(user);
}}
catch(Exception e)
{
throw new RuntimeException(e);
}
finally{
try {
conn.close();
}
catch (Exception ignored) {
}
}
return users;
}
}
혹시 Compile 시 오류가 발생한다면 아래와 같이 해준다.
C:\Server\Tomcat\webapps\blazeds_test\WEB-INF\classes\kr\pe\kyrandia>javac -cp ../../../ objects/*.java
C:\Server\Tomcat\webapps\blazeds_test\WEB-INF\classes\kr\pe\kyrandia>javac -cp ../../../ services/*.java
6. 설정 파일 수정
WEB-INF\web.xml 파일에서 rds 관련부분 주석을 제거 한다.
<param-name>useAppserverSecurity</param-name>
<param-value>true</param-value>
주석 제거후 위의 true 부분을 찾아서 false 로 바꿔준다.
WEB-INF\flex\remoting-config.xml 파일에서
<destination id="TestUserServiceDestination">
<properties>
<source>kr.pe.kyrandia.services.TestUserService</source>
</properties>
</destination>
를 <service></service> 태그 안에 추가 한다.
7. Flash Builder 4.5 에서 설정
새로운 프로젝트를 시작한다. 나는 Mobile Project를 선택했다.
자신의 설정 대로 입력한 후 Validate Configuration 버튼을 눌러서 위쪽에 나온 메시지 처럼 Valid 가 나와야 제대로 설정 된거다. 오류가 난다면 설정이나 경로를 다시 한번 확인 한다.
프로젝트가 열리면 아래쪽에 Data/Services 탭에서 Connect to Data/Services 링크를 누른다.
BlazeDS 를 선택한다.
생성해둔 Destination 을 선택한다.
Finish 버튼을 누르면 위처럼 Data/Services 탭에 내용이 채워진걸 확인 할 수 있다.
이제 DataGrid를 추가해야하는데 Component를 찾아봐도 DataGrid가 없다. 걱정하지말고
프로젝트 Code 모드로 들어가서 <s:DataGrid></s:DataGrid> 를 추가한다.
모바일 버전에선 최적화가 안됐다고 나오지만 쓰기엔 무리가 없다.
Design 모드로 나와서 위처럼 크기를 설정한다.
그 다음 위와 같이 마우스로 끌어서 DataGrid 위에 놓는다.
창이 뜨면 별다른 수정 없이 OK 버튼을 누른다.
위와 같이 DataGrid에 Field 가 생긴걸 볼 수 있다.
Code 모드로 들어가서 headerText 부분을 찾아서 값을 수정한다.
userIdx 를 Idx 로 userName 을 Name 으로 userAge를 Age로 바꾼다.
Run 버튼을 누르거나 Ctrl+F11 키를 누르면 위와 같은 창이 뜬다.
플랫폼을 Android 로 선택하고 실행한다. iOS 로 선택해도 된다.
최종적으로 실행된 화면이다.
데이터를 좀 더 추가하고 프로그램 타이틀과 refresh 버튼을 추가 한 후
실제 폰(갤럭시탭)에서 구동해본 화면이다.