우선 MySQL에 DB가 있어야겠죠?
[code]
CREATE TABLE `Member_List` (
  `ID` varchar(10) NOT NULL,
  `Password` varchar(10) NOT NULL,
  `Name` varchar(10) NOT NULL,
  `Age` int(2) NOT NULL,
  `Sex` varchar(2) NOT NULL,
  `Tel` varchar(12) NOT NULL,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=euckr COMMENT='회원 멤버 리스트입니다.';

INSERT INTO `Member_List` (`ID`, `Password`, `Name`, `Age`, `Sex`, `Tel`) VALUES
('mudchobo', '1234', '성종천', 25, '남', '01000000000'),
('k1011606', '1234', '강현욱', 24, '남', '01000000000'),
('shs8326', '1234', '성현식', 58, '남', '01000000000'),
('jor0737', '1234', '조옥렬', 49, '여', '01000000000'),
('boazzang', 'boalove', '보아짱', 30, '여', '0100000000'),
('webserv', 'babo', '웹서비스', 45, '남', '01000000000'),
('child', 'ggoma', '꼬마', 15, '여', '01000000000'),
('mudcosdf', '1234', '성종텬', 99, '남', '01000000000');
[/code]
자바클래스를 작성해봅시다.

그리고 blazeds프로젝트에 WebContent/WEB-INF/lib에 mysqlconnector넣는거 잊지마세요 ^^

blazeds프로젝트 아래 Java Resources: src부분에서 패키지를 만듭시다.
flex.member라는 패키지를 만들고, MemberVo라는 클래스를 생성해봅시다.
[code]
package flex.member;

public class MemberVo {
 String id;
 String password;
 String name;
 int age;
 String sex;
 String tel;
 
 public String getId() {
  return id;
 }
 public void setId(String id) {
  this.id = id;
 }
 public String getPassword() {
  return password;
 }
 public void setPassword(String password) {
  this.password = password;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 public String getSex() {
  return sex;
 }
 public void setSex(String sex) {
  this.sex = sex;
 }
 public String getTel() {
  return tel;
 }
 public void setTel(String tel) {
  this.tel = tel;
 }
}
[/code]
위와 같은 bean을 만듭시다.

그리고 DB와 연동하는 놈인 MemberService라는 클래스를 만들어봅시다.
[code]
package flex.member;

import java.util.ArrayList;
import java.util.List;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import flex.member.MemberVo;
public class MemberService {
 public List<MemberVo> getElements() throws SQLException {
  long startTime = System.currentTimeMillis();
  try {
   Class.forName("com.mysql.jdbc.Driver");
  } catch (ClassNotFoundException e) {
  }
  Connection con = null;
  List<MemberVo> list = new ArrayList<MemberVo>();
  String sql = "SELECT * FROM Member_List";
  try {
   String url = "jdbc:mysql://MYSQL디비주소/db이름";
   con = DriverManager.getConnection(url, "db계정id", "db계정비밀번호");
   PreparedStatement stmt = con.prepareStatement(sql);
   ResultSet rs = stmt.executeQuery();
   while (rs.next()) {
    MemberVo mb = new MemberVo();
    mb.setId(rs.getString("Id"));
    mb.setPassword(rs.getString("Password"));
    mb.setName(rs.getString("Name"));
    mb.setAge(rs.getInt("Age"));
    mb.setSex(rs.getString("Sex"));
    mb.setTel(rs.getString("Tel"));
    list.add(mb);
   }
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   try {
    con.close();
   } catch (Exception ignored) {
   }
  }
  System.out.println("Service execution time: "
    + (System.currentTimeMillis() - startTime));
  return list;
 }
}
[/code]
다 만들었으면 config를 수정해야해요.
blazeds프로젝트아래 WebContent/WEB-INF/flex/remoting-config.xml를 열어봅시다. service태그 안에 추가합시다.
[code]
<destination id="member"> 
  <properties>  
   <source>flex.member.MemberService</source> 
  </properties>
 </destination>
[/code]
이제 다 완성되었어요. export를 해야죠. Overwrite existing file에 체크를 하고, 톰캣디렉토리/webapp/blazeds.war를 선택합니다.
Finish를 클릭하고 톰캣을 가동시켜줍시다.

이제 Flex Builder로 갑시다. 여기서 이제 저 MemberService클래스에 있는 getElements()메소드를 불러올꺼에요.
New Project에서 Flex Project를 선택합니다.
Project name은 BlazedsTest라고 하고 Web application선택, Application server type은 J2EE로 선택하고 다음!
Server location에서 User default ~~~ 어쩌구 체크해제하구 blazeds로 설정합시다.
Root folder는 톰캣디렉토리/webapps/blazeds를 선택
Root URL은 http://localhost:8080/blazeds/
Context root는 blazeds
Validate Configuration클릭해서 제대로 되면 돼요(톰캣이 가동되어 있어야 돼요 ^^)
가볍게 Finish를 눌러줍시다 ^^

BlazedsTest.mxml에 이렇게 작성합시다.
[code]
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
 <mx:Script> 
  <![CDATA[  
   import mx.rpc.events.ResultEvent;  
   import mx.rpc.events.FaultEvent;  
   import mx.rpc.remoting.RemoteObject;  
   import mx.controls.Alert;     
   private var startTime:Number;      
   private function resultHandler(event:ResultEvent):void{       
    dg.dataProvider = event.result;  
   }     
   
   private function faultHandler(event:FaultEvent):void{       
    mx.controls.Alert.show("실패 메세지 : " + event.fault.message);  
   }     
   
   private function retrieve():void  {  
    var srv:mx.rpc.remoting.RemoteObject = new RemoteObject();  
    srv.destination = "member";      
    startTime = new Date().time;  
    srv.getElements();       
    srv.addEventListener("result",resultHandler);  
    srv.addEventListener("fault",faultHandler);  
   }    
   
   private function logResult():void  {  
    if (startTime > 0)   {   
     log.text = "" + (new Date().time - startTime) + " milliseconds"; 
    } 
   }   
  ]]>
 </mx:Script>  
 
 <mx:Panel title="AS를 이용한 RemoteObject예" width="100%" height="100%"> 
  <mx:DataGrid id="dg" width="100%" height="100%"                 
      updateComplete="logResult()"/>  
  <mx:ControlBar>   
   <mx:Button label="데이터 가져오기" click="retrieve()"/>  
   <mx:Label id="log"/>  
  </mx:ControlBar>
 </mx:Panel>
</mx:Application>
[/code]
그런다음 실행하면 아래와 같은 창이 뜨고 Button클릭하면 끝입니다.

사용자 삽입 이미지


이렇게 하는게 맞나-_-; 아닌것같아요. 너무 복잡해요-_-; 더 쉬운방법이 있을것같은데...-_-;

 
Posted by 머드초보

댓글을 달아 주세요

  1. 이전 댓글 더보기
  2. 네버다이 2008.02.05 09:41  댓글주소  수정/삭제  댓글쓰기

    저도 member쪽을 못찾나 싶어서 remoting-config.xml destination 쪽하고 오타하고 설정쪽 싹다 확인해 보았는데 안되서요.

    혹시 버전업이 되면서 또다른 설정을 해야되나 싶어 문서도 찾아봤는데 요거 관련한 문서는 못찾았네요. ^^

    머드초보님 답변 감사드리구요. 새해 복 많이 받으세요~

  3. 네버다이 2008.02.05 10:57  댓글주소  수정/삭제  댓글쓰기

    아... 혹시 jdk1.5.0 tomcat 5.5.25 버전이 문제가 될까요?

    5,6 확인해도 똑같네요.

    • BlogIcon 머드초보 2008.02.05 17:13  댓글주소  수정/삭제

      버전이 문제가 있을 수도 있을 것 같습니다.
      blazeds안에 tomcat이 있는데 보면 6.0입니다.
      저는 테스트시에 tomcat6.0과 jdk1.6.0 u3에서 테스트를 해봤습니다. ^^

  4. 네버다이 2008.02.11 09:55  댓글주소  수정/삭제  댓글쓰기

    저도 동일한 환경만들어서 한번해봐야 겠네요.

  5. BlogIcon 에이레네 2008.02.12 01:28  댓글주소  수정/삭제  댓글쓰기

    더 쉽게 하는 법 없지 않나요 ㅋㅋㅋ 이게 최소 코딩인데 ㅠ_ㅠ

  6. BlogIcon 에이레네 2008.02.13 02:57  댓글주소  수정/삭제  댓글쓰기

    http://labs.adobe.com/technologies/blazeds/

    여기 보니 최소 사양으로 톰캣은 Tomcat 6.0.14 을 요구하고 있네요 ^^ LCDS는 톰캣 5에서도 잘 돌아가는데 ㅠㅠ 저도 톰캣 5.5 에서 돌려보니 안돼서 찾아보니 최소 6.0.14네여 ㅋㅋㅋ 그냥 주는대로 테스트할걸 ㅋㅋ

    • BlogIcon 머드초보 2008.02.13 23:13  댓글주소  수정/삭제

      아하 그렇군요 ^^
      저는 최신버전을 좋아해서-_-;
      항상 테스트도 최신버전으로 하다보니 ^^
      최소사양도 있군요.
      좋은 정보 감사합니다 ^^

  7. 네버다이 2008.02.15 16:11  댓글주소  수정/삭제  댓글쓰기

    blazeds.zip 안에 samples.war 파일 돌려보면 jdk1.5 톰캣 5.5.23에서 잘돌아가는데

    위내용 코딩해서 넣으면 계속 id를 못찾네요. ㅡ.ㅡa

    • BlogIcon 머드초보 2008.02.15 18:13  댓글주소  수정/삭제

      아....그렇군요 ㅠㅠ
      샘플은 돌아가는군요....
      혹시 그러면 LCDS 2.5에서도 되는지 해보시겠어요?
      이게 된다면....버전문제가 맞을듯해요-_-;

  8. 네버다이 2008.02.16 12:53  댓글주소  수정/삭제  댓글쓰기

    이참에 최신버전으로 다 올리고 해봤습니다. 일단 성공하고 아래버전으로 내려가 볼려구요. ^^
    jdk 1.6 , tomcat 6.0.14 , lcds251-win.exe ,flex builder beta 3 환경에
    상기 소스 그대로 복사해서 java컴파일(eclipse 3.2 wtp), mxml컴파일(fb3)한다음
    lcds251 내의 flex.war 파일을 톰캣 webapps 에 푼다음
    그안에 java class,컴파일된 .swf, 설정파일 세팅해도 안되네요.
    에러메세지는 전과 동일하구요.

    실패 메세지 : faultCode:InvokeFailed faultString:'[MessagingError message='Destination 'member' either does not exist or the destination has no channels defined (and the application does not define any default channels.)']' faultDetail:'Couldn't establish a connection to 'member''

    혹시 mxml컴파일 할때 builder에 환경쪽에 뭐 잡아줘야 할 것이 있는지요?
    가령 build path 항목에 source path나 lib path에 lcds쪽에 무언가를 추가시켜줘야 한다거나...
    참고로 FLEX_HOME 환경변수에는 N:\FLEX\flex_sdk_2_hf1 가 잡혀있으나 이쪽은 무관한거 같구요.
    예제 한번 성공하기 디기 힘드네요.. ^^
    그럼 좋은 주말되세요~

    • BlogIcon 머드초보 2008.02.18 18:21  댓글주소  수정/삭제

      저는 별다른 셋팅이 없었습니다.
      이상하네요. 수정해야할 부분은 flex.war파일 안에있는 remoting-config.xml파일 하나인데요.
      저 메시지는 member라는 destination이 채널에 정의가 안되어있는 듯합니다. ^^

  9. BlogIcon 지돌스타 2008.02.19 12:46  댓글주소  수정/삭제  댓글쓰기

    좋은 글 잘보고 갑니다.

    • BlogIcon 머드초보 2008.02.20 17:23  댓글주소  수정/삭제

      아네 감사합니다 ^^
      지돌스타님께서 방문해주셔서 영광이에요 ^^
      스타플 요즘 열심히 하고 있어요!!!
      재미있고 신기한 서비스라서 ^^ 원래 신기한걸좀 좋아합니다 ^^
      앞으로 정식 오픈까지 화이팅입니다 ^^

  10. 네버다이 2008.02.19 16:00  댓글주소  수정/삭제  댓글쓰기

    remoting-config.xml 에 정의는 물론 되어 있구요.. ^^

    별다른게 없는데 왜 이렇게 속을 썩이는 것인지... 또 찾아봐야겠네요.

  11. 네버다이 2008.02.20 17:33  댓글주소  수정/삭제  댓글쓰기

    머드초보님 드디어 성공했네요.
    jdk1.5 tomcat.5.5,23, fb 3 beta 3환경에서 했구요. blazeds,lcds es 버전에서 다 해보았는데 잘되네요.
    관건은 제가 따로따로 만들어서 해서 안된거 였습니다.
    글데로 프로젝트에서 lcds로 잡고 했으면 되었을텐데
    그냥 기본 mxml 프로젝트 잡아서 거기서 코딩해서 컴파일된 swf를 /컨텍스트에 넣었거든요.
    내부적으로 컴파일하는 방식에 차이가 있는거 같네요.
    fb2 버전에서도 한번해봐야겠네요.
    그럼 수고하세요.

    • BlogIcon 머드초보 2008.02.20 17:24  댓글주소  수정/삭제

      오! 그렇군요! 축하드립니다 ^^
      아....그게 프로젝트를 만들 때 blazeDS를 설정해주는데 그래서 따로하면 안되는건가봐요. 저도 뜯어보지 않아서 원리는 잘몰르겠네요 ㅠㅠ
      어쨌든 매번 방문해주셔서 감사하구요~
      앞으로도 잘 되시길~ ^^ 수고하세요~

  12. 네버다이 2008.02.20 17:43  댓글주소  수정/삭제  댓글쓰기

    네. 자주 들릴께요~
    감사하다니요. 제가 더 감사드리죠. 이렇게 좋은 자료 올려주셔서 많은 도음이 되었습니다.
    그리고 제 홈피에 삽질내용 쓴다고 내용일부 좀 긁어갔어요. ^^a

  13. 네버다이 2008.02.20 17:56  댓글주소  수정/삭제  댓글쓰기

    머드초보님 이건 별개글인데요.
    호스팅이 받으시는 곳이 tomeii.com 인데
    여기가 php,jsp까지 지원이 되네요. 무료인지 유료인지는 모르겠으나 회원가입도 안되구요.
    무료인가요? jsp까지 지원이라면 상당히 메리트가 있는데 말이죠...
    무료라면 얼른 가입하고 싶은데 회원가입이 안되네요..

    • BlogIcon 머드초보 2008.02.20 23:58  댓글주소  수정/삭제

      아직 신규회원을 받지 않고 있습니다.
      http://www.theeye.pe.kr/ 이 블로그 주인인 아이군이 tomeii의 주인인데요.
      신규회원을 받지 않는 것으로 알고있습니다 ^^
      나중에 모집한다고 하네요
      아이군에게 문의해보세요 ^^
      아그리고 서버운영을 자기 돈으로 하는 걸루 알고 있어요 ^^ 무료라는얘기죠 ^^

  14. 네버다이 2008.02.21 10:11  댓글주소  수정/삭제  댓글쓰기

    그렇군요. 다음에 한번 문의해봐야 겠네요.
    좋은 하루되세요~

  15. BlogIcon 황민혁 2008.10.03 20:28  댓글주소  수정/삭제  댓글쓰기

    우와..... 정말 감사합니다~

    몇시간동안을 이런저런 자료 보면서 헤매고 있어는데.. 드디어 되네요~

    그런데 뒤에 쓰신글을 보니 플러그인으로 한게 있던데.. 그것도 해봐야겠어요~ㅋ

    • 머드초보 2008.10.03 22:14  댓글주소  수정/삭제

      앗~ 도움이 되셨다니 다행입니다.
      플러그인으로 하시는 게 더 좋습니다^^
      디버깅도 쉽게 할 수 있구요^^

  16. 박병일 2008.10.15 12:43  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 잘 보았습니다.
    완전 초보라 잘 이해가 안되어서 질문드릴께요. ^^

    blazeds프로젝트에 WebContent/WEB-INF/lib에 mysqlconnector 넣으라고 하셨는데.
    mysqlconnector가 무언지 모르겠습니다. 허접한 질문올려서 죄송합니다. ^^;;

    • 머드초보 2008.10.15 21:29  댓글주소  수정/삭제

      Connector가 있어야 MySQL을 접속할 수 있습니다.
      Driver같은건데요. 접속할 수 있는 라이브러리라고 보면 됩니다.
      http://dev.mysql.com/downloads/connector/j/5.1.html
      여기서 받으시면 되구요.
      만약 오라클을 하신다면 오라클 홈페이지에 있는 jdbc드라이버를 받으셔야겠죠^^

  17. 그래잇 2008.12.17 14:21  댓글주소  수정/삭제  댓글쓰기

    머드초보님 덕분에 공부 잘하고 있습니다.^^
    여쭤볼께 있어서요. 실행결과에 실행시간이 나오는데 DataGrid에 결과 값이 안보이네요.
    어케해야할지 조언 좀 부탁드림니다

    • 머드초보 2008.12.19 11:33  댓글주소  수정/삭제

      안녕하세요!
      음...소스를 봐야지 알 것 같은데요 ^^
      답장 주세요~ ^^

  18. 그래잇 2008.12.19 15:42  댓글주소  수정/삭제  댓글쓰기

    감사합니다.^^ 오라클 디비 쓰는데 다시하니 잘나옵니다.
    수고하세요~~^^

  19. 천자 2009.08.04 09:56  댓글주소  수정/삭제  댓글쓰기

    초보 입니다.
    "blazeds프로젝트아래 WebContent/WEB-INF/flex/remoting-config.xml를 열어봅시다." 라고 하셨는데
    이는 폴더를 flex 폴더를 한들고 remoting-config.xml 파일을 만들어 주어야 한다는 것인가요?

    자바 아니면 해당 파일이 자동으로 생기나요?
    자바쪽에 VO.java Service.java, flex/remoting-config.xml 세개가 필요 하고 flex 쪽에 .mxml하나면 되나요? 조언 부탁 드립니다.

    • 천자 2009.08.04 11:09  댓글주소  수정/삭제

      앗... 이건 LCDS를 설치해야 생기는 거군요. 쯥...
      여튼 감사.

    • 머드초보 2009.08.07 23:33  댓글주소  수정/삭제

      blazeDS와 LCDS는 remoting-config.xml같은 설정은 동일합니다^^
      blazeDS도 받으면 있습니다^^

  20. BlogIcon 황연 2009.10.03 15:32  댓글주소  수정/삭제  댓글쓰기

    머드초보님. 저도 똑같이 다 따라했는데요..

    다 이상없는듯했는데 Datagrid에 내용이 안뿌려지네요..

    위에보니 접속 속도만 나왔었다고했던분처럼 되는데..

    저는 다시해도안되요..ㅠㅠ

    mysql connector는 그냥 받아서 jar파일만 lib폴더에 넣으면 되는거죠????

    글구 uri쪽은 "jdbc:mysql://localhost:3306/mysql" 이런식으로 해놓았구요..

    소스는 머드초보님소스 긁어다해서.. 이상이 없을거같은데.. 무엇이 문젤까요??

    ㅠㅠ

  21. flex초보 2009.10.26 20:37  댓글주소  수정/삭제  댓글쓰기

    데이타 가져오고 난 후 한글이 깨져서 나오는데 어떻게 해야하나요?

    • 머드초보 2009.10.29 12:34  댓글주소  수정/삭제

      한글깨짐 문제는 백빵 인코딩 문제인 듯 한데.....
      DB인코딩을 한번 확인해보세요
      그냥 일반 자바에서 디버깅을 해봐서 한글이 깨지는지 확인해보세요^^
      거기서도 깨지면 FLEX문제가 아닌 서버단 인코딩 문제일 듯.
      아님 UTF8이 아니라 EUC-KR로 던지면 문제가 될 듯한데요.
      FLEX는 무조건 UTF8로 읽거든요.