몰랐는데 AIR에서도 되네요-_-;

우선 http://mudchobo.tomeii.com/tt/211 이거랑
http://mudchobo.tomeii.com/tt/214 이거를 참조하셔서 새로운 blazeds.war를 만들어서 톰캣에 띄워야합니다.

New Project로 만들고, ProjectName을 AirBlazedsTest라고 합시다.
Desktop application을 선택하고 J2EE를 선택하고, 넥스트를 누릅니다 ^^

Server location은 위에 따라했다면 그대로 되어 있을꺼에요^^
Finish를 클릭해줍시다.

AIR에서는 좀 다르게 몇줄을 더 추가해야하는데요.

[code]
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
   layout="absolute">
 <mx:Script> 
  <![CDATA[
   import mx.messaging.ChannelSet;
   import mx.messaging.channels.AMFChannel;  
   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 amfChannel:AMFChannel = new AMFChannel(
     "my-amf", "http://localhost:8080/blazeds/messagebroker/amf");
    var channelSet:ChannelSet = new ChannelSet();
    channelSet.addChannel(amfChannel);
   
    var srv:mx.rpc.remoting.RemoteObject = new RemoteObject();  
    srv.channelSet = channelSet;
    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:WindowedApplication>
[/code]

사용자 삽입 이미지


AIR에서도 돼요-_-; 레몬펜그은부분만 추가를 해주시면 돼요 ^^
 
Posted by 머드초보

댓글을 달아 주세요

  1. 2008.01.31 20:34  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

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

      너무 감사합니다 ㅠㅠ
      눈물이 앞을 가려요 ㅠㅠ
      방명록은 상단에 있답니다 ^^
      우선 카페가입했습니다. 너무 감사드려요!
      열심히 하겠습니다!!!

    • 이성민 2008.02.05 00:31  댓글주소  수정/삭제

      모야 내이름은? 나도 이곳을 주시 하고 있다는거 모르나? ㅋㅋㅋ 왜 없어 내이름!!! ㅋㅋ 얼렁 적어넣어라

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

      -_-; 나중에 다른 예제가 있으면 넣어주마-_-;

  2. BlogIcon 옹씨루 2008.02.21 00:43  댓글주소  수정/삭제  댓글쓰기

    유익한 정보 감사합니다~

  3. BlogIcon 고고마 2008.12.01 16:12  댓글주소  수정/삭제  댓글쓰기

    음.. 전 weblogic9.2와 LCDS2.5.1을 써서 동일하게 해봤는데요. remoting-config.xml 부분을 고치게 되면
    weblogic에서는 console에서 디플로이를 시켜서 flex.war를 갖다가 자동으로 사용하는데
    다시 고친다면 flex.war를 다시 이클립스에서 열어서 고치고 export를 시킨 후 다시 디플로이 시켜야 실행이 되려나요.
    실패 메세지 :
    faultCode:Server.Processing faultString:'No destination with id 'member' is registered with any service.' faultDetail:'null'
    위의 메시지가 자꾸 뜨는데.. service등록이 안되었다는 건데 후우.. 하루종일 이러고 있네요 ㅠㅠ

    • 머드초보 2008.12.02 17:45  댓글주소  수정/삭제

      음.....뭔가 null이라는 얘기인 듯 한데요.
      웹로직에서 안해봐서 잘 모르겠네요 ㅠㅠ

  4. BlogIcon 고고마 2008.12.03 10:32  댓글주소  수정/삭제  댓글쓰기

    오 되었어요 ^^; AMF 웹루트 경로를 제가 잘못 썼네요 아우 기분좋네요 ! 엉뚱한 것만 찾고 있었네요

  5. 컴온예 2009.02.15 15:58  댓글주소  수정/삭제  댓글쓰기

    정말 많은 도움이 됐네요!!
    다들 대단한 실력자들이신가봐요.

    지돌스타, 머드초보, 에이레네 등등...
    부럽습니다.

    많은 도움받아가요...

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

      도움이 되셨다니 다행이네요^^
      근데 전 실력자가 아닙니다-_-; 저 실력자분들에 비하면 뭐 아무것도 아닙니다-_-;
      방문해주셔서~ 감사해요 ^^

  6. 2009.08.21 10:03  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

    • 머드초보 2009.08.23 19:27  댓글주소  수정/삭제

      안녕하세요~
      제가 이해를 잘 못했는데요-_-
      우선 데이터를 Flex컴포넌트 tree에 맞게 보여주려고 하시는건가요?
      BlazeDS는 데이터를 연동하는 것입니다.
      remoteobject를 이용해서 tree에 맞는 데이터를 가져오면 잘 될 듯한데요-_-
      죄송해요 이해가 잘 안되네요 ㅠㅠ

 

우선 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로 읽거든요.

 
BlazeDS는 기존에 FDS(LCDS)에서 Remoting, Messaging기능만 빼서 오픈소스화한 프로젝트랍니다.
RemoteObject를 그니까 LCDS를 사지않고도 사용할 수 있다는 거란얘기죠-_-;
어쨌든 간단한 예제로 해봅시다.

http://opensource.adobe.com/wiki/display/blazeds/Downloads
이곳에서 BlazeDS를 받도록 합시다.
압축을 적당한 곳에다가 풀어놓습니다.

여기 안에 톰캣이 있긴 있는데 이걸로 이클립스에 서버를 추가하려니 안되더라구요. 그래서 톰캣을 새로 받아서 lib만 추가하는 식으로 하니까 되더군요 ^^
톰캣을 받습니다. http://tomcat.apache.org/ 6.0으로 받습니다. zip파일로 받습니다.
적당한 곳에 풀어버립시다.
그리고 BlazeDS디렉토리/tomcat/lib/blazeds/에 있는 jar파일 2개를
톰캣홈디렉토리/lib폴더에다가 jar파일을 복사해야해요.(flex-tomcat-common.jar, flex-tomcat-server.jar)
이거 복사하는 것도 안해줘도 됩니다 ㅠ

그리고 blazeds.war, blazeds-console.war, blazeds-samples.war 파일을 톰캣디렉토리/webapps/ 에다가 복사를 합니다.
톰캣디렉토리/bin/startup.bat 를 실행해서 구동되는지 확인합니다. 구동되면 된 겁니다 ^^

이제 Flex Builder 3 beta 3이 필요합니다.
참고로 standalone모드로 설치를 해야합니다.
베타 때 문제가 있었던 것 같은데 개발할 때에는 플러그인으로 빌더를 설치하는게 정신건강에 좋습니다.

플러그인으로 설치를 하면 자꾸 Builder가 죽어버리네요-_-;
그래서 그냥 Builder, Eclipse 따로따로 사용해서 했습니다.

Eclipse(WTP)를 실행해봅시다.

BlazeDS디렉토리/blazeds.war파일이 있는데 이것을 이클립스에서 Import시켜봅시다.
File -> Import -> WAR file선택합시다.
WAR file은 blazeds.war선택.
Target runtime은 New해서 새로 추가해줍시다.
우리가 설치한 톰캣을 추가해봅시다.
Apache Tomcat v6.0을 선택하고, 디렉토리는 설치한 톰캣디렉토리를 지정해줍시다.
Finish를 클릭해서 완료합니다. war파일을 불러왔네요. 이제 간단히 DB연동을 해서 데이터를 가져오는 메소드를 만들어 봅시다.
이 메소드를 이제 Flex에서 RemoteObject로 호출할꺼니까요 ^^

소스설명은 다음이시간에-_-;
 
Posted by 머드초보

댓글을 달아 주세요

  1. 흐음 2008.08.29 09:37  댓글주소  수정/삭제  댓글쓰기

    잘 보고 갑니다...
    그런데 blazeDS 링크가 좀 바뀐듯 싶습니다
    http://opensource.adobe.com/wiki/display/blazeds/Downloads

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

      앗 좋은 지적 감사합니다 ㅠㅠ
      베타 때 쓴 글이어서 labs로 링크가 되어있었네요 ㅠ
      감사해요~ 수정할께요 ^^

  2. 민준홍 2010.08.13 02:03  댓글주소  수정/삭제  댓글쓰기

    감사히 잘보고 가요~~
    오랜전 글이지만 플렉스 초보라 많은 도움 받고 갑니다~~ 헤헤

 

아....친구한테 RemoteObject를 했다고하니까 욕먹었습니다-_-; 실무에서 쓰이지 않는다고 하더군요. 이 LCDS라는게 좀 비싸서 ^^

그리고 객체지향적인 AS3.0의 특성을 살리지 않고, 멋대로지향적으로 설계를 했습니다-_-; 다시 객체지향적으로 변경해서 해보도록 하겠습니다-_-;

뭐 그래도 삽질했으니까 올립니다. 보고 플렉스를 공부하시는 분들 도움이 되셨으면 좋겠어요(아마 도움이 안될껍니다-_-;)
이따구로도 플렉스를 할 수 있다는 것을 보여준 참 좋은 예인거 같습니다-_-;

프로그램은 간단합니다.
로그인, 회원가입으로 아이디를 생성하고, 예약하고 싶은 좌석을 선택해서 예약하면 예약되고-_-;
예약한 좌석 리스트를 보고 예약취소하고 싶으면 선택해서 취소해버리면 됩니다-_-;

덤으로 차팅도 두개 넣었구요. 로그인 로그아웃 등의 flexSession을 이용해서 제작했습니다.

웹에다가 올리려고 했는데 서버가 다운됐어요-_-; 친구한테 욕먹게 생겼어요-_-;
친구한테 물어보고 되면 올려볼께요-_-; 뭐 보고싶은 사람도 없겠지만-_-;

아 올렸어요-_-; 예제사이트입니다-_-;
http://mudchobo.tomeii.com/flex/Booksystem/Booksystem.swf

소스는 플렉스꺼랑 자바클래스꺼랑 두개가 있습니다!
이게 플렉스꺼 mxml파일들입니다.




이게 자바클래스입니다 ^^




DB구조입니다.



나중에 삽질한 거 설명하면서 차근차근 올려보도록 하겠습니다-_-;
사용자 삽입 이미지
사용자 삽입 이미지

사용자 삽입 이미지
사용자 삽입 이미지

 
Posted by 머드초보

댓글을 달아 주세요

  1. BlogIcon 불꽃남자 2008.06.25 16:46  댓글주소  수정/삭제  댓글쓰기

    좋은 예제네요.
    지나가다 한마디 남기고 갑니다.
    어떤 친구가 실무에서 RemoteObject가 쓰이지 않는다고 하셨는지요?
    실제 업무형 Flex 프로젝트할때 RemoteObject를 사용하지 않을 경우 아무도 퍼포먼스에 대한 책임을 질 수 없게 됩니다. LCDS가 비싸면 Open Source라도 사용하는 것이 바람직하고, 특히 예매 시스템과 같은 순간 트랜잭션이 많이 일어날 상황일 경우 무조건 RemoteObject를 사용하는게 좋습니다.
    참고로 저는 대한민국의 대부분 Flex 프로젝트에 관여해왔기 때문에,
    친구분의 얘기보다 제 말이 더 정확하다고 확신합니다.

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

      오....대한민국 Flex의 산 증인이시군요 ㅠㅠ
      반갑습니다 ^^ 좋은 의견 감사해요~ ^^
      저도 RemoteObject를 써야한다고 생각해요 ^^
      엄청 빠르다고 하더군요 ^^
      저 예제는 플렉스를 한참 인문할 때 작성한거라-_-;
      손볼곳이 100만개가 되보이는군요-_-;
      암튼 방문해주셔서 감사해요~ ^^

  2. 콩다방사장 2008.09.02 17:41  댓글주소  수정/삭제  댓글쓰기

    소스 다운받아서 햇는데여~자바 파일 먼가 하나 빠진건가요?
    sessionRO파일 messaging 에러가....

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

      혹시 Flex Builder3을 사용하시나요?
      그럼 하는 방식이 좀 틀린데요.
      Builder3에서 타입설정하는거에 J2EE로 해놓고
      프로젝트를 만드시면 JAR파일들이 있을겁니다.
      아마 그걸로 안만들어서 에러가 나는듯하네요.
      jar파일을 복사해서 할 수도 있구요.
      더 좋은 방법은 처음부터 J2EE로 프로젝트를 만들어서
      거기서 코딩을 하면 돼요.
      Flex Builder를 Standalone으로 설치하지마시고,
      Eclipse + Flex Builder3 Plugin을 추천합니다 ^^

  3. 남양알로에아가씨 2008.10.07 18:29  댓글주소  수정/삭제  댓글쓰기

    와~안그래도 php로 된 로그인 예제가 많아 java를 이용한 예제를 찾고 있었는데
    이렇게 저에게 딱 맞는 글을 찾게 되어, 진행중인 학습에 더욱 열의가 불타 오릅니다 ㅎㅎ
    감사합니다 ㅎ

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

      아넵 도움이 되셨으면 좋겠네요 ^^
      학구열은 언제나 타올라야 합니다!

  4. 천재성 2008.12.22 07:01  댓글주소  수정/삭제  댓글쓰기

    저기여~~ 제가 플렉스 이제 독학으로 배우는데요
    이 예제 실행하려고 하는데...
    자 윈도우 깔린 본체에서
    mysql를 설치 했는데

    님께서 올려주신 디비 자료하고~~ 어케 연동 시켜야 하는지 잘 모르곘어요 ㅜㅜ
    얼려주세요

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

      디비연동부분은 JAVA를 따로 공부하셔야합니다.
      이곳에서는 DB연동을 다루지 않았습니다.
      JDBC에 대해서 공부하시면 돼요 ^^

  5. 우아ㅠ 2009.01.12 11:08  댓글주소  수정/삭제  댓글쓰기

    난언제이렇게 만들죠??ㅠ

    공부열심히해야겟네요..ㅠ

    • 머드초보 2009.01.14 17:27  댓글주소  수정/삭제

      헉....이건 무려 오래전에 제작한..-_-;
      사실 보면 좋지 않은 코드가 많습니다-_-;(저도 공부하면서 알게된..ㅠ)
      방문해주셔서 감사해요~ ^^

  6. 왕초보 2009.02.06 19:31  댓글주소  수정/삭제  댓글쓰기

    flex를 공부중인 대학생입니다.
    DBCP설정하려고 webapps\blazeds\WEB-INF에 있는 web.xml을 봤는데
    아뿔사!
    <servlet>
    <servlet-name>MessageBrokerServlet</servlet-name>
    <display-name>MessageBrokerServlet</display-name>
    <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
    <init-param>
    <param-name>services.configuration.file</param-name>
    <param-value>/WEB-INF/flex/services-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>

    요런 내용이 있어서 이를 어찌 설정해야 되나 난감해 하고 있는 중입니다.
    JSP처럼 그냥
    <servlet>
    <servlet-name>DBCPInit</servlet-name>
    <servlet-class>flex.jdbcdriver.DBCPInit</servlet-class>
    <load-on-startup>1</load-on-startup>
    <init-param>
    <param-name>jdbcdriver</param-name>
    <param-value>com.mysql.jdbc.Driver</param-value>
    </init-param>
    </servlet>
    이런식으로 설정하면 되는 걸까요??
    답변 해주세요

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

      그건 MessageBrokerServlet이라고 해서 DBCP설정하는게 아닙니다.
      RemoteObject를 사용하기위한 서블릿이라고 보면 됩니다.
      위에 예제에서는 DB연동부분은 빠져있습니다.
      RemoteObject부터 공부하시면 될 듯 합니다^^
      BlazeDS나 LCDS로 할 수 있습니다^^

  7. 입문자 2009.04.09 17:26  댓글주소  수정/삭제  댓글쓰기

    이제 FLEX 입문한 JAVA 개발자 입니다.
    언제나 좋은 예제 감사합니다.
    간결한 설명과 좋은 예제 초보인 제가 보기에 정말 좋은것 같습니다.

    앞으로도 좋은 글 부탁드리며, 위 예제 돌렸는데 버튼의 label이 "R.","A.","S." 이런식으로 나오는데..
    소스는 건들지 않았습니다..;;;;
    Alert으로 찍어봐도 제대로 나오는데...뭐가 문제인지는 모르겠습니다..
    혹시 의심되는 부분이 있으면 답변 부탁 드립니다.

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

      안녕하세요~
      이거 정말 추억의 소스군요-_- 부끄럽습니다-_-
      우선 label의 글자가 짤리는 것 같은데요.
      브라우저 크기를 늘려보시면 나올 듯 합니다.
      아님 button에 마우스오버를 해도 글이 다 나올 듯 합니다....
      width를 고정으로 하지 않았기에, 퍼센트에 따라 버튼 크기가 지정되어 그런 듯 합니다^^

  8. 아직도초보 2009.11.08 20:12  댓글주소  수정/삭제  댓글쓰기

    좋은예제내요~ 저도 열심히 해보겠습니다 ㅎ

    • 머드초보 2009.11.09 16:19  댓글주소  수정/삭제

      헉...2년이 넘은 예제임 ㅠㅠ
      문제가 좀 많은 코드입니다 ㅠㅠ 주의해서 참조하세요 ^^

  9. Flex초급 2010.01.28 13:22  댓글주소  수정/삭제  댓글쓰기

    좋은 정보.. 너무 잘보고 갑니다~~

  10. Flex 쌩초보 2010.05.04 09:46  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 감사합니다. 초급 프로그래머 인데 아직 기초도 없는 상태에서 프로젝트를 맡아서
    하다보니까 이것저것 헤매는 것들이 너무 많네요.
    ^^ 소스 분석해 보면서 실력을 늘려야 겠네요
    늘 행복하시고 환절기 감기 조심하세요 ^^

  11. Flex 쌩초보 2010.05.04 14:09  댓글주소  수정/삭제  댓글쓰기

    질문좀 할게요.

    지금 sesseion 부분에서 오류가 발생하는데

    실패 메세지: faultCode:InvokeFailed faultString:'[MessagingError message='Destination 'session' 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 'session''

    이런메세지가 뜨네요. remoting 쪽에다가
    <destination id="session">
    <properties>
    <source>flex.session.SessionRO</source>
    </properties>
    </destination>

    이렇게 처리 해줬는데 이게 제대로 인식이 안되는거 같습니다.
    혹시 추가 *.java가 필요한건가요?

    • 머드초보 2010.05.06 00:04  댓글주소  수정/삭제

      아뇨 추가 java는 필요없는데....
      아...게다가 너무 오래되어서(조만간 3년을 찍게 될 제 부끄러운 글이....-_-)
      저 메세지는 백방 설정이나 뭔가 빠진 게 있는 것 같습니다.
      저런 메세지를 저도 많이 봐왔는데, 결론은 destination이 존재하지 않는 것인데, 컴파일 옵션이 혹시 제대로 되어있는지?-_-

  12. 렉스초보 2011.12.01 17:16  댓글주소  수정/삭제  댓글쓰기

    flex + spring + ibaits + jsp + oracle + blazeds 이렇게 연동해서

    소스수정해서 해보고 있는데 어렵네요..ㅠ_ㅠ

    다른부분은 거진 다되는데 destination 설정해주는데에서 자꾸 헤매고 있네요 ㅎㅎ

    소스감사합니다^^ 열심히 더 수정해봐야겠네요 ㅠ

    • BlogIcon 머드초보 2011.12.01 21:38 신고  댓글주소  수정/삭제

      아....저도 참 오래전에 만든거라...-_- destination부분은 저도 예전에 삽질하면서 많이 헤맸던 부분이였던 것 같네요~ 원리만 이해하면 아마 잘 되실거에요~ 화이팅!