728x90
반응형

Adrian Parr’s Blog 에 올라온 ActionScript 3.0 Code 라이브러리 모음이다. 매우 유용해서 긁어왔다.

3D Engines

3D Game Engines

3D Animation Framework

3D Physics Engines

Animation Tweening Kits

2D Physics Engines

Security

Audio Libraries

Particle Systems

Data Visualization

Loading Kits

OOP Frameworks

Other APIs and libraries

출처 : http://www.adrianparr.com/?p=83

728x90
반응형
728x90
반응형

Tracy Spratt <tspratt@lariatinc.com> 의 아이디어입니다

 

<?xml version="1.0" encoding="utf-8"?>

<!-- Tree control example. -->

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initApp()">

<mx:Script><![CDATA[

  [Bindable]

  public var _xmlData:XML;

 

  public function initApp():void

  {

    _xmlData = <element eid="hello">

         <element eid="world">

            <element eid="123"/>

            <element eid="graham"/>

            <element eid="weldon">

               <element eid="office">

                  <element eid="thing"/>

                  <element eid="boat"/>

                  <element eid="chair"/>

               </element>

               <element eid="person"/>

                </element>

             </element>

          </element> ;

  

  }//initapp

     

  private function expandParents(xmlNode:XML):void

  {

    while (xmlNode.parent() != null) { 

      xmlNode = xmlNode.parent();

      myTree.expandItem(xmlNode,true, false);

    }

  }//expandParents

 

         

            private function findNodeById(sId:String):void

            {

                        var xmllistDescendants:XMLList  = _xmlData.descendants().(@eid == sId);

                        expandParents(xmllistDescendants[0]);

                        myTree.selectedItem = xmllistDescendants[0];

            }//findNodeById          

]]></mx:Script>

 

 

 

    <mx:Panel title="Tree Control Example" height="75%" width="75%"

        paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom="10">

        <mx:HBox>

          <mx:TextInput id="tiId" text="boat" />

          <mx:Button label="Find" click="findNodeById(tiId.text)" />        

        </mx:HBox>

        <mx:Tree id="myTree" width="50%" height="100%" labelField="@eid"

            showRoot="false" dataProvider="{_xmlData}" />     

    </mx:Panel>

</mx:Application>

728x90
반응형
728x90
반응형

아래 코드를 좀 응용하면 될듯...

var nowDate:Date = new Date();
var sday:String = nowDate.date.toString();
var smonth:String = (nowDate.month+1).toString();

if(sday.length == 1){
sday = "0"+sday;
}
if(smonth.length == 1){
smonth = "0"+smonth
}

snowDate = nowDate.fullYear.toString()+"-"+ smonth +"-"+sday;

728x90
반응형
728x90
반응형
SELECT @rownum:=@rownum+1 rownum, t.*
FROM (SELECT @rownum:=0) r, mytable t;
728x90
반응형
728x90
반응형
출처 throw new *^^*; | 예영파피
원문 http://blog.naver.com/agapeuni/60064550602 
CCL

reference

한글문서

영문문서

링크

관련툴

<div class="note"> 위키북스에서 출판되는 iBATIS In Action에서 독자의 이해를 돕고자 하는 사항에 대해 정보를 제공한다. </div>

샘플코드

  • queryForMap()의 사용예제 - iBATIS사용시 대개의 개발자는 queryForObject와 queryForList를 사용한다. 그래서 queryForMap에 대한 이해나 예제가 부족한 실정이다. 그래서 이해를 돕고자 예제를 제공한다.
  • Procedure 사용예제 - Procedure사용예제를 다룬다. IN, OUT, INOUT타입을 다룬다.
  • iBATIS Error Message - iBATIS를 사용하면서 겪게 되는 에러 메시지.

 

[출처] http://openframework.or.kr

728x90
반응형
728x90
반응형
앞글( http://tylee82.tistory.com/62 )에 이어서 클라이언트 작성을 알아보도록 한다.
이글은 머그초보의 블로그( http://mudchobo.tomeii.com/tt/239?category=8 ) 의 글을 참고로 작성됨을 알려드리며, 문제가 발생시 자삭 하겠습니다.

<< service-config.xml파일을 수정 >>

<factories>
  <factory id="springfactory" class="flex.messaging.factory.SpringFactory" /> 
</factories>
를 추가합니다.

<< remote-config.xml 파일을 수정 >>
<destination id="productmanager">
 <properties>
  <factory>springfactory</factory> 
  <source>productManager</source>
 </properties>
</destination> 

자세히 보시면 factory는 위에 service-config.xml파일에 정의한 놈이고, source는 bean이름입니다.
즉 applicationContext.xml파일에 정의한 그 bean이름을 저기에 적어 놓으면 됩니다.
그러면 그 bean을 flex로 가져와서 쓸 수 있습니다.


아 그리고 프로젝트에서 이상하게 contextroot가 WebContent로 되어있는데 프로젝트이름으로 고쳐줍시다-_-; 
---> (원래 WebContent 나오는게 정상 아닌가?? 뭐 난 아무것도 모르는 초보니깐.. 그냥 시키는데로...)

프로젝트 이름에 대고 마우스오른쪽버튼(alt+enter) properties를 선택, Flex Server부분 클릭.
context root를 프로젝트이름(SpringAndBlazeds)으로 바꿔줍시다.


<< FLEX 작성 >>
자 그러면 flex_src에 있는 SpringAndBlazeds.mxml을 수정해봅시다.
SpringAndBlazeds.mxml


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
 
applicationComplete="init();">
 
 
<mx:Script>
  <![CDATA[
   import mx.controls.Alert;
   import mx.rpc.events.FaultEvent;
   import mx.rpc.events.ResultEvent;
   import mx.rpc.remoting.RemoteObject;
   
   private function init():void {
    var remoteObject:RemoteObject = new RemoteObject();
    remoteObject.destination = "productmanager";
    remoteObject.addEventListener(ResultEvent.RESULT, resultHandler);
    remoteObject.addEventListener(FaultEvent.FAULT, faultHandler);
    remoteObject.getProducts();
   }
   
   private function resultHandler(event:ResultEvent):void{        
       dg.dataProvider = event.result;  
      }      
   
      private function faultHandler(event:FaultEvent):void{        
       Alert.show("실패 메세지 : " + event.fault.message);  
      }  
  ]]>
 
</mx:Script>
 
 
<mx:DataGrid id="dg" width="100%" height="100%" />
</mx:Application>

간단하게 Manager에 있는 getProducts를 호출해서 DataGrid에 넣는 코드입니다.

<< 실행 >>
이클립스 오른쪽아래에 server에다가 SpringAndBlazeds프로젝트를 추가합니다.
서버에 대고, 오른쪽버튼누르면, Add and Remove Project클릭해서 추가하면 됩니다.
서버를 가동합니다.
Run Flex Application을 실행해봅시다!


 - 후기
이번 예제를 실행하면서 나의 실력에 부족한점을 알아냈다.
  • Spring 프레임워크의 부족한 점 보안 
  • Flex에서 DataBase의 연동시 처리 방법 보안
  • iBatis의 데이터 베이스 정의 및 사용방법 보안
실질적으로 사용을 하기위한 프로젝트로 만들기 위해서는 많은 점을 보안해야 겠지만, 일단 오늘 돌려본 이 예제가 엄청난 도움이 될거라 생각한다. 아직 Spring 프로젝트 경험도 공부도 해본적이 없지만, EJB시스템 및 좀더 거대한 프로젝트를 위해서는 아무래도 공부를 해야겠다.

개인적으로 참 괜찮다고 생각한 DB 처리 java 소스들이 있어서 언제나 그것을 가지고 개발을 했는데, 아무래도 이제는 iBatis를 이용해 봐야겠다. 

FLEX의 컴포넌트 구조도 아는것이 없었는데, 일단 DB와 연동을 시켜봤으니 게시판부터 한번 개발 해보려 한다.

다시한번 머그초보님에게 감사를 표시합니다.

728x90
반응형
728x90
반응형

앞글 ( http://tylee82.tistory.com/61 )에 이은 포스트입니다.
이 글은 머드초보의 블로그 ( http://mudchobo.tomeii.com/tt/238?category=8 )의 글을 기초로 작성 됨을 알려드리며, 문제 발생시 자삭하겠습니다.

<< Manager클래스 작성 >>
실제로 BlazeDS를 이용해서 가져오는 놈은 이 Manager클래스가 됩니다.
Java Resources: src에서 오른쪽버튼 클릭하고, New를 해서 interface를 구현합니다.

package springapp.service;

import java.util.List;
import springapp.domain.Product;

public interface ProductManager {
 
public List<Product> getProducts();
}

getProducts라는 메소드가 하나 있군요! 구현해봅시다!!!

package springapp.service;

import java.util.List;

import springapp.dao.ProductDao;
import springapp.domain.Product;

public class ProductManagerImpl implements ProductManager {

 
private ProductDao productDao;
 
 
@Override
 
public List<Product> getProducts() {
 
return productDao.getProductList();
 
}

 
public void setProductDao(ProductDao productDao) {
 
this.productDao = productDao;
 
}
}

getProducts라는 함수는 Dao에서 getProductList를 호출하는 놈이네요.
요 아래에는 setter가 있네요. 이건 spring에서 DI를 하기위해 존재하는 setter입니다^^
서비스도 완성이 되었네요! 이제 설정파일을 작성해봅시다.

WEB-INF/applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 
xmlns:p="http://www.springframework.org/schema/p"
 
xmlns:aop="http://www.springframework.org/schema/aop"
 
xmlns:tx="http://www.springframework.org/schema/tx"
 
xsi:schemaLocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
 http://www.springframework.org/schema/aop
 http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
 http://www.springframework.org/schema/tx
 http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"
>

 
<!-- Enable @Transactional support -->
 
<tx:annotation-driven />

 
<!-- Enable @AspectJ support -->
 
<aop:aspectj-autoproxy />

 
<aop:config>
 
<aop:advisor pointcut="execution(* *..ProductManager.*(..))"
   
advice-ref="txAdvice" />
 
</aop:config>

 
<tx:advice id="txAdvice">
 
<tx:attributes>
   
<tx:method name="save*" />
   
<tx:method name="get*" read-only="true" />
 
</tx:attributes>
 
</tx:advice>

 
<bean id="productManager"
 
class="springapp.service.ProductManagerImpl">
 
<property name="productDao" ref="productDao" />
 
</bean>

</beans>

Dao부분의 설정파일인 applicationContext-ibatis.xml파일을 봅시다.
WEB-INF/applicationContext-ibatis.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 
xmlns:p="http://www.springframework.org/schema/p"
 
xmlns:aop="http://www.springframework.org/schema/aop"
 
xmlns:tx="http://www.springframework.org/schema/tx"
 
xsi:schemaLocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"
>

 
<bean id="propertyConfigurer"
 
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
 
p:location="classpath:properties/jdbc.properties" />

 
<bean id="dataSource"
 
class="org.springframework.jdbc.datasource.DriverManagerDataSource"
 
p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.url}"
 
p:username="${jdbc.username}" p:password="${jdbc.password}" />

 
<!-- Transaction manager for iBATIS Daos -->
 
<bean id="transactionManager"
 
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
 
<property name="dataSource" ref="dataSource" />
 
</bean>

 
<!-- SqlMap setup for iBATIS Database Layer -->
 
<bean id="sqlMapClient"
 
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
 
<property name="dataSource" ref="dataSource" />
 
<property name="configLocation"
   
value="classpath:springapp/dao/SqlMapConfig.xml" />
 
</bean>

 
<!-- Add additional Dao definitions here -->
 
<bean id="productDao"
 
class="springapp.dao.ProductDaoImpl">
 
<property name="sqlMapClient" ref="sqlMapClient" />
 
</bean>
 
</beans>

jdbc.properties파일은 properties라는 package를 만들고, jdbc.properties파일을 넣어버립시다.

jdbc
.driverClassName=com.mysql.jdbc.Driver
jdbc
.url=jdbc:mysql://DB주소
jdbc
.username=DB아이디
jdbc
.password=DB비밀번호

이 설정들의 bean들의 관계를 보고 싶다면-_-;
Spring Elements에서 오른쪽버튼 클릭하고 properties를 선택.
Bean Support를 선택, Add한 뒤 두개의 설정파일(applicationContext.xml, applicationContext-ibatis.xml)선택.
Config set에서 New하고 Name에 applicationContext라고 하고, 두개다 체크 오케이~
그럼 이제 스프링 설정파일에서 에러를 찾아낼 수 있어요!
bean들의 관계를 그래프로도 볼 수 있네요!
Config set에 추가한 applicationContext에다가 마우스오른쪽버튼을 클릭하면 open graph로 볼 수 있어요!

이제 클라이언트 구현으로....다음 시간에-_-;
728x90
반응형
728x90
반응형

세팅 ( http://tylee82.tistory.com/60 )이 완료되면 이제 코딩을 해보겠습니다.
머드초보의 블러그의 글을 참고로 작성된 글임을 다시한번 강조합니다.



<< MySQL >>
일단 DB 구조입니다. 
CREATE TABLE `products` (

  `id` int(11) NOT NULL,
  `description` varchar(255) default NULL,
  `price` decimal(15,2) default NULL,
  PRIMARY KEY  (`id`),
  KEY `products_description` (`description`)
) ENGINE=MyISAM DEFAULT CHARSET=UTF8;

INSERT INTO `products` (`id`, `description`, `price`) VALUES 
(1, 'Lamp', 391.50),
(2, 'Table', 2918.85),
(3, 'Chair', 884.27);

※ mysql 설치시 charset을 utf-8로 설정을 하였기때문에 UTF8로 charset을 잡았습니다.

<< 프로젝트 구조 >>

그냥 src폴더는 자바서버단 폴더구요. flex_src폴더는 플렉스클라이언트단 폴더입니다.



<< web.xml 의 수정 (스프링 설정) >>

web.xml 아래 코드 추가
<context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>


<listener>
 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

applicationContext*라고 적어 놓은 이유가 ibatis랑 분리를 하려고 합니다.
설정파일은 applicationContext.xml과 applicationContext-ibatis.xml 두개를 사용할껍니다.

※ 위 코드 추가시 주의 사항 : web.xml의 엘리먼트의 위치는 순서가 있습니다. 순서가 맞지 않는다면 에러가 납니다. ( 참고글 : http://woongbox.tistory.com/tag/The%20content%20of%20element%20type%20"web-app"%20must%20match )

<< 소스코딩 >>
src에다가 코딩을 해봅시다.
java는 perspective를 Java EE로 바꾸고 합시다.


우선 domain부분에 ValueObject를 하나 만들어봅시다.
Java Resources:src에다가 New를 하고 class를 선택합니다.
package는 springapp.domain이라고 하구요.
Name은 Product라고 하고 Finish

Product.java

package springapp.domain;

public class Product {

 
private int id;
 
private String description;
 
private Double price;

 
public int getId() {
 
return id;
 
}

 
public void setId(int id) {
 
this.id = id;
 
}

 
public String getDescription() {
 
return description;
 
}

 
public void setDescription(String description) {
 
this.description = description;
 
}

 
public Double getPrice() {
 
return price;
 
}

 
public void setPrice(Double price) {
 
this.price = price;
 
}
}

ProductDao를 만들어봅시다.
Java Resource:src에 New해서 interface를 추가합시다.
package에다가 springapp.dao라고 써놓고, 
Name에다가 ProductDao라고 씁시다.

package springapp.dao;

import java.util.List;
import springapp.domain.Product;

public interface ProductDao {
 
public List<Product> getProductList();
}

딸랑 ProductList만 가져오는 메소드가 있어요! 
저 Dao인터페이스를 구현해봅시다!!!

package springapp.dao;

import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

import springapp.domain.Product;

public class ProductDaoImpl extends SqlMapClientDaoSupport implements
 
ProductDao {

 
protected final Log logger = LogFactory.getLog(getClass());

 
@SuppressWarnings("unchecked")
 
@Override
 
public List<Product> getProductList() {
  logger
.info("Getting products!");
 
return getSqlMapClientTemplate().queryForList("getProductList");
 
}
}

<< ibatis >>
ibatis부분인데요. 설정파일을 보도록 하겠습니다.

src/springapp/dao/SqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE sqlMapConfig      
    PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"      
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">


<sqlMapConfig>
 
<typeAlias alias="Product" type="springapp.domain.Product"/>

 
<sqlMap resource="springapp/dao/MySQLProduct.xml" />
</sqlMapConfig>

alias지정해주고, resource는 src/springapp/dao/MySQLProduct.xml파일입니다.

MySQLProduct.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE sqlMap      
    PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"      
    "http://ibatis.apache.org/dtd/sql-map-2.dtd">


<sqlMap namespace="Product">

 
<resultMap id="ProductMap" class="Product">
 
<result property="id" column="id" />
 
<result property="description" column="description" />
 
<result property="price" column="price" />
 
</resultMap>

 
<select id="getProductList" resultMap="ProductMap">
  select id, description, price from products
 
</select>

</sqlMap>

getProductList라는 것은 products테이블에서 내용을 select하는 것이네요.
Dao가 완성되었네요! 너무 길어지니 다음이시간에 ...

728x90
반응형
728x90
반응형
스프링프레임워크에 플렉스를 연동하는 간단한 예제를 만들어 보겠다. 

이 포스트는 머드초보님의 블로그(http://mudchobo.tomeii.com)를 기반으로 작성하였으며, 난 스프링프레임워크에 대한 지식이 많지 않다.. 물로 플렉스도.. 배우는 과정이기 때문에 그냥 따라해본다.

머드초보님 글 감사합니다.

일단 세팅부터 하자.

<< 준비물 >>
Eclipse IDE for Java EE Developers  :http://www.eclipse.org/downloads/

Flex Builder 3 Eclipse Plug-in(로그인후받을 수 있음) : 
http://www.adobe.com/cfusion/tdrc/index.cfm?product=flex_eclipse

Spring Framework 2.5.6 : http://www.springframework.org/download

Spring과 BlazeDS연동라이브러리 : blazeds-spring-beta1.jar 현재 beta1이군요.
http://www.igenko.org/archiva/repository/igenko/com/adobe/flex/blazeds-spring/

↑ 위 링크 없졌다..그래서 Sewon On Software 블로그 ( http://sewony.tistory.com/entry/BlazeDS-와-스프링Spring-연동하기 ) 에서 다운 받았다. 외국사이트에서 구하면 된다고 하는데, 구글에서 찾다보니 이곳이 나와 난 여기서 다운 받았음..이거 말고 다른 라이브러리가 존재하는것 같지만, 일단 이것을 사용하도록 한다. 난 아무것도 모르고 하는것 이기에...;;;

설치는 모두 알아서 설치 하도록 한다. 뭐 그냥 깔고 압축풀고 ....


Blazeds 프로젝트 생성
1. File -> New -> Project선택, Flex Project선택 후 Next
Project : SpringAndBlazeds
Application Type : Web Application
Application server type : J2EE

2. J2EE 세팅 설정
Target runtime : Tomcat
설정이 안되어 있다면 New 한다음에 Apache폴더에 Tomcat 6.0을 선택하고, 해당 톰캣의 경로를 지정하고, Finish를 클릭한다.
 flex WAR파일을 선택하라고 하는데 받아놓은 blazeds.war파일을 선택한다.
Finish를 클릭하면 끝난다.


- 스프링IDE 설치

1. 이클립스메뉴에서 Help -> Software Updates -> Find And Install 선택
Search for new features to install를 선택 후 Next
New Remote Site선택 Name은 Spring IDE, url은 http://dist.springframework.org/release/IDE고 쓴다.




추가한 것만 체크된 상태에서 Finish클릭!

몇개는 설치 못하는데 설치 못하는 것은 체크해제를 시킨다...ㅡ.ㅡ;;
Dependencies에서 Spring IDE Dependencies 체크해제
Integration에서 Spring IDE AJDT Intergration 체크해제
AspectJ Development Tools도 설치하려면 하면된다. 난 사용할줄 모름...
Next -> agree -> finish하면 설치가 됩니다.
설치가 다 되면 이클립스ide를 restart하라고 나와서 리스타트^^

근데 지금 회사에서는 외부인터넷 접속에 문제가 있어서 그런지 몰라도...저 주소가 안된다...


2. 만든 프로젝트에  마우스 오른쪽버튼을 클릭해서 Spring Tools -> Add Spring Project Nature선택 하면 완료!!



3. 필요한 라이브러리를 복사한다. ( 근데 어디다가 복사 하라는거지??음...일단 WEB-INF/lib 에 복사 한다... 어찌됬건 모두 라이브러리 파일이니깐...)

dist/spring.jar : 스프링프레임워크를 쓰기 위해 꼭 필요한 놈.

dist/module/spring-test.jar : 스프링테스트 할 때 필요한 놈.

lib/jakarta-commons/commons-logging.jar : 로그찍을 때 필요한 놈.

lib/ibatis/ibatis-2.3.0.677.jar : ibatis쓸 때 필요한 놈.

lib/cglib/cglib-nodep-2.2.jar : Junit으로 테스트 할 때 필요한데, JUnit테스트를 할 때에는 Interface가 구현이 안되어있어서(aop를 사용하려면 interface가 구현이 되어있어야 한다고 하더군요) 필요한 놈. --> http://sourceforge.net/project/showfiles.php?group_id=56933

lib/aspectj/aspectjweaver.jar : aop때문에 필요한 놈 같은데-_-;  
lib/junit/junit-4.5.jar : JUnit을 사용하기 위해 필요한 놈.

mysql-connector-java-5.1.7-bin.jar : mysql Connector. db가 다른거면 다른 Connector가 있으면 돼요!
blazeds-spring-beta1.jar : 위에서 설명한 spring과 blazeDS와 연동할 때 필요한 놈.


여기까지하면 세팅완료!!
728x90
반응형
728x90
반응형

아래 글은 투윙오리(happyyhj)님의 블로그에서 퍼왔음을 알려드립니다.

원본 주소 : http://blog.naver.com/happyyhj/59943609

문제가 있을시 삭제처리 하겠습니다.

===================================================================================================

Flex2에서 할려고 했었는데 BlazeDs는 Flex3에서만 된다기에 그냥 Flex3에서 함.

이클립스에서 몽땅 다 사용하기 ㅋ

예제들을 보니 거의 플렉스 빌더(flex) + 이클립스(BlazeDs) 이렇게 사용하고 있었다.

고맙게도 어떤 분께서 이렇게 좋은 자료를 올려주셔서 보면서 따라했다.

안에 내용은 중복된다. 그냥 저거 그대로 했다고 보면 된다.

친절한 설명과 함께 그림으로도 과정샷을 설명해주신 내용을 파일로 다운받을 수 있도록

해놓으셨다. 완전 감사!

http://tong.nate.com/thesunrises/45999746

 

 

[준비작업]

1. BlazeDS를 다운 받는다.

(Binary Distribution-> 꼭 필요한 파일만 있음.

샘플이랑 바로 구동해 볼 수 있는 톰캣 포함을 원하면 Turnkey)

http://opensource.adobe.com/wiki/display/blazeds/Release+Builds

 

2. 다운 받은 압축 파일을 풀면 blazed.war 파일이 있다. 확인해 보자.

 

 < 시작 > 

1. 이클립스 띄워서 플렉스3 프로젝트 생성(New-> FlexProject)

    아래 그림과 같이 셋팅한다.

  

[Next]!

 

2. 1에서 서버타입으로 선택한 J2EE Server 셋팅작업

    콤보박스 내렸을 때 기존에 내가 등록한게 있으면 그거 선택하고

    없으면 [New...]버튼 클릭

 

 

3. 나는 톰캣 5.5 사용 ^^ -> [Installed Runtimes] 버튼 클릭

 

 

4. [Add...] 버튼 클릭 후

    톰캣 5.5 클릭 후 [Next] 버튼 클릭

 

 

5. [Browse...] 버튼 클릭해서 내가 설치해 놓은 톰캣 폴더 경로 잡아준다.

 

6. 다시 2번의 창으로 돌아와서 [Browse...]버튼 클릭 해서 아까 준비작업 1에서 다운 받았던 blazed.was파일이 있는 경로를 잡아준다.

 

7. 그림을 참고로 자기에게 맞게 수정.

 

8. src 폴더에서 오른쪽 마우스 클릭(new-> Other -> java -> package)해서 test란 이름의 패키지 만들고 만든 test란 패키지에서 오른쪽 마우스 클릭(new-> Other -> )해서 java file 생성

자바파일 생성시 파일이름만 써주고 나머지는 설정 그대로 하고 마치면 됨.

----------------------------------------

  

-----------------------------------------------

 

9. 자바 내용 작성

------------------------------------------

package test;

public class helloTest {
    public String getStr(){
        return "Welcome BlazeDS: success!";
    }
}
------------------------------------------------

 

10. WebContent/WEB-INF/flex/remote-config.xml 파일 수정

    빨간색 글자가 추가된 부분임.

    만약 위의 파일이 없다면 준비작업2에서 압축 푼 경로에서 import해온다.

    (이유는 모르겠지만 나는 없어서...)

   이클립스에서 xml여니까 트리구조로 나왔다. 오 신기 ㅡㅡ;

   각 상위 태그에서 오른쪽 마우스 클릭해서 add child나 add attribute 메뉴로 아래와 같이

   추가했다. 그게 어려우면 그냥 윈도우 탐색기로 경로 찾아가서 메모장이나 editplus

   이용해서 수정해도 된다 ㅎㅎ

-----------------------------------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service"
    class="flex.messaging.services.RemotingService">

    <adapters>
        <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/>
    </adapters>

    <default-channels>
        <channel ref="my-amf"/>
    </default-channels>

    <destination id="blaze">
     <properties>
      <source>test.helloTest</source>
 </properties>
    </destination>

</service>

-----------------------------------------------------------------------------

 

11. RemoteObject_Test.mxml 파일에 작성

-----------------------------------------------------------------------------

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
 <mx:RemoteObject id="ro" destination="blaze" fault="faultHandler(event)">
  <mx:method name="getStr" result="resultHandler(event)"/>
 </mx:RemoteObject>
 <mx:Script>
  <![CDATA[
   import mx.rpc.remoting.mxml.RemoteObject;
   import mx.controls.Alert;
   import mx.rpc.events.ResultEvent;
   import mx.rpc.events.FaultEvent;

   
   //에러가 났을 경우 이벤트 발생
   private function faultHandler(event:FaultEvent):void
   {
       Alert.show("error: "+event.message.toString());
   }
   
   //제대로 실행 되었을 경우 이벤트 발생
   private function resultHandler(event:ResultEvent):void
   {
       Alert.show("result: "+event.result.toString());
   }
   
   //버튼 클릭 후 RemoteObject Call
   private function remote_object_call():void
   {
       // remoteObjecc에서 java method call
       ro.getStr();
   }
  ]]>
 </mx:Script>
 <mx:Button label="service start" click="remote_object_call()" x="159" y="127"/>
</mx:Application>

-----------------------------------------------------------------------------

 

12. RemoteObject_Test 프로젝트 선택 후 오른쪽 마우스 클릭 해서 properies클릭

      context root변경 -> 프로젝트명으로

 

13. 이클립스 도구 모음 window -> show view -> other -> server -> server

      server 창안에서 마우스 오른쪽 클릭 New-> server 클릭

     3번 그림과 같이 뜬다. 3번에서는 Installed Runtimes...버튼 클릭하는데 여기서는 그냥

     사용할 서버 톰캣 5.5(아까 J2EE에서 만든 server) 선택 후 finish 버튼 클릭

 

14. server창에 나타난 톰캣서버 선택 후 마우스 오른쪽 클릭 해서

     Add and Remove Project... 선택 

     왼쪽 창에서 실행시킬 프로젝트 선택 후 add > 버튼 클릭 한 후 finish 버튼 클릭

  

 

15. 실행시킨다. 상단의 초록색 동그라미 모양의 재생버튼을 클릭해도 되고  

    최종 실행시킬 mxml파일 선택 후 마우스 오른쪽 버튼 클릭해서

    Rus As-> 2.Flex Application 클릭해도 된다. 

 

[결과 화면]

728x90
반응형

+ Recent posts