- notice 스킨변경~
[BlazeDS]검색결과, 14건
- [Flex] Flash Builder Beta2에서 Data/Services기능을 통한 BlazeDS연동. 2009/10/29
- [Spring/Flex] Spring BlazeDS Integration AppEngine위에서 간단히 구동 후기 2009/09/28 (4)
- [Flex/PHP] Zend AMF를 이용한 PHP와 FLEX의 연동삽질후기 2009/03/27 (18)
- [Spring/Flex] Spring BlazeDS Integration 1.0.0.M1 삽질 후기-_-; 2008/12/27 (20)
- [Flex] Flex와 javascript간의 통신을 쉽게 해주는 FABridge 사용후기. 2008/08/06 (8)
[BlazeDS]댓글 검색결과, 27건
- 여기서 뵈니 반갑네요^^ 플렉스컴포넌트카페에서 글 많이 봤는데 ^^ 메... 2008/02/05
- 버전이 문제가 있을 수도 있을 것 같습니다. blazeds안에 tomcat이 있는... 2008/02/05
- RemoteObject를 사용하기 위해서는 LCDS나 BlazeDS를 사용해야합니다.... 2008/02/12
- http://labs.adobe.com/technologies/blazeds/ 여기 보니 최소 사양으... 2008/02/13
- blazeds.zip 안에 samples.war 파일 돌려보면 jdk1.5 톰캣 5.5.23에서... 2008/02/15
- 오! 그렇군요! 축하드립니다 ^^ 아....그게 프로젝트를 만들 때 blazeDS... 2008/02/20
- 머드초보님 드디어 성공했네요. jdk1.5 tomcat.5.5,23, fb 3 beta 3환경... 2008/02/20
- 제가 스프링은 잘몰라서 좋은지 안좋은지 모르겠지만 책 구성을 봐서는... 2008/03/17
- 앗 시난님 또 방문해주셔서 감사합니다 ^^ 저거 스프링이랑 BlazeDS 잘... 2008/06/26
- 저 위에 검색창에서요. remoteobject라고 쳐보세요 ^^ 뭔가 나올겁니다... 2008/08/26
- 잘 보고 갑니다... 그런데 blazeDS 링크가 좀 바뀐듯 싶습니다 http:/... 2008/08/29
- 그렇군요.. 감사합니다..^^ 이렇게 빨리 답변도 해주시구.. 지금 어떤... 2008/10/08
- 좋은 정보 잘 보았습니다. 완전 초보라 잘 이해가 안되어서 질문드릴... 2008/10/15
- flex를 공부중인 대학생입니다. DBCP설정하려고 webapps\blazeds\WEB-I... 2009/02/06
- 그건 MessageBrokerServlet이라고 해서 DBCP설정하는게 아닙니다. Remo... 2009/02/07
- 안녕하세요. 플렉스 초보자 데이비슨입니다. 저는 지금 LCDS를 이용해... 2009/03/24
- LCDS에서 사용해도 문제가 아마도 없을 겁니다. 근데, 최근에 Spring에... 2009/03/25
- 초보 입니다. "blazeds프로젝트아래 WebContent/WEB-INF/flex/remoting... 2009/08/04
- blazeDS와 LCDS는 remoting-config.xml같은 설정은 동일합니다^^ blaze... 2009/08/07
- 안녕하세요~ 제가 이해를 잘 못했는데요-_- 우선 데이터를 Flex컴포넌... 2009/08/23
- 안녕하세요, BlazeDS로 Messaging service와 Remote Object를 이용(JAVA... 2009/09/10
- 좋은 예제 감사드립니다 (꾸벅) 덕분에 spring blazeds intergration 1.... 2009/11/09
- 안녕하세요~ BlazeDS나 LCDS는 서버데이터와 연동하기 위한 도구라고... 2009/12/31
- 안녕하세요. 글 잘 읽어보았습니다. 위 처럼 작업을하고 이제 서버에... 2010/02/10
- 안녕하세요~ BlazeDS는 자바용이고, zenphp가 그 역할을 대신하는 것입... 2010/02/12
- 안녕하세요..^^ 올려주시는 글 너무 잘 보고 있습니다..^^ 제가... 2010/04/06
- 답변이 늦어서 죄송합니다ㅠㅠ BlazeDS는 서버에서 셋팅을 해줘야합니... 2010/07/21
[Flex] Flash Builder Beta2에서 Data/Services기능을 통한 BlazeDS연동.
Posted in 플렉스(Flex) // Posted at 2009/10/29 12:30BlazeDS버전이 4.X대여야 잘 됩니다. 3.X대면 안되더군요.
그리고 BlazeDS버전이 4.x의 Beta1버전이 있는데, 이걸로 하면 요런 에러가 뜹니다.
그래서 전 Night Build중에 4.0.0.11030버전을 사용해서 하니 되더군요.
다운로드는 여기서 http://opensource.adobe.com/wiki/display/blazeds/download+blazeds+trunk
제 환경은 Eclipse 3.5, Flash Builder 4 Beta 2, JDK 1.6.0 U 16입니다.
플러그인으로 못깐 이유가 기존의 Flex Builder 3가 플러그인으로 깔려있는데, 왠지 꼬일 것 같아서(새가슴 ㄷㄷ)-_-
우선 blazeds.war파일을 Eclipse에서 import.
web.xml을 보면 이상한 Servlet이 하나 더 생겼는데요. RDSDispatchServlet.
이거 풀고, 인증부분을 false로 바꾸면 됩니다. 자체적으로 할 수 있는 인증이 생긴 것 같은데, 이건 더 해봐야 알겠네요.
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>BlazeDS</display-name>
<description>BlazeDS Application</description>
<!-- Http Flex Session attribute and binding listener support -->
<listener>
<listener-class>flex.messaging.HttpFlexSession</listener-class>
</listener>
<!-- MessageBroker Servlet -->
<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>
<!-- begin rds -->
<servlet>
<servlet-name>RDSDispatchServlet</servlet-name>
<display-name>RDSDispatchServlet</display-name>
<servlet-class>flex.rds.server.servlet.FrontEndServlet</servlet-class>
<init-param>
<param-name>useAppserverSecurity</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>10</load-on-startup>
</servlet>
<servlet-mapping id="RDS_DISPATCH_MAPPING">
<servlet-name>RDSDispatchServlet</servlet-name>
<url-pattern>/CFIDE/main/ide.cfm</url-pattern>
</servlet-mapping>
<!-- end rds -->
<servlet-mapping>
<servlet-name>MessageBrokerServlet</servlet-name>
<url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>
</web-app>테스트 클래스를 하나 만듭니다.
Test.java
package com.mudchobo.test;
public class TestService {
public String sayHello(String name)
{
return "Hello! " + name;
}
}remoting-config.xml에 destination을 추가.
remoting-config.xml
<destination id="test">
<properties>
<source>com.mudchobo.test.TestService</source>
<scope>application</scope>
</properties>
<adapter ref="java-object" />
</destination>서버를 이제 작동을 시켜서 띄워둡니다.
이제 Flash Builder로...
프로젝트 생성 -> 타입은 Web, Server type은 J2EE(BlazeDS)
Server location은 Root Folder는 해당 blazeds임포트한 폴더에 있는 WebContent.
Root URL은 http://localhost:8080/blazeds
Context root는 blazeds
Validate Configuration하면 왜 안되지...-_- 암튼 그냥 Finish를 누릅니다-_-
맨 하단에 Data/Services 탭이 있는데, 거기서 Connect to Data/Service.. 클릭.
BlazeDS선택, destionation으로 설정한 test가 하나 보일꺼임. 선택 Finish.
그럼 해당 Destination에 있는 함수인 sayHello가 보이는군요. 사용해봅시다.
여러가지 기능이 있는데요. 저도 잘 몰라서 많이 안해봤는데, 우선 기존에 삽질을 덜어주기 위한 많은 기능을 넣은 것 같습니다. 테스트도 할 수 있고, 자동으로 remoteObject코드도 만들어주고, 뭐 그런 것 같습니다.
Form도 만들어주네요-_-
Test Opeartion을 했더니 파라메터를 던지니 Response value로 나오네요.
Button과 TextInput, 결과 Label을 하나 추가.
button은 id를 btn, TextInput은 input. button에 오른쪽버튼 누르면 generate Service Call클릭.
그러면 자동으로 click핸들러 함수 만들어지고, sayHello함수 파라메터만 넣으면 되는데, 여기에는 input.text를 넣으면 끝.
Label에는 text에다가 sayHelloResult.lastResult를 바인딩.
DataTest.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo" minWidth="1024" minHeight="768" xmlns:test="services.test.*">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
protected function btn_clickHandler(event:MouseEvent):void
{
sayHelloResult.token = test.sayHello(input.text);
}
]]>
</fx:Script>
<fx:Declarations>
<s:CallResponder id="sayHelloResult"/>
<test:Test id="test" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true"/>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Button x="248" y="245" label="Button" click="btn_clickHandler(event)" id="btn"/>
<s:TextInput x="223" y="215" id="input"/>
<s:Label x="260" y="274" text="{sayHelloResult.lastResult}"/>
</s:Application>
이런 코드가 됨. 개판임-_-

PS. 자동으로 다 해줘서 좋긴 한데...왠지 익숙하지 않은 코드가.....
참고자료
http://sujitreddyg.wordpress.com/2009/06/01/building-flex-application-for-blazeds-remoting-service-using-flash-builder-4/
[Spring/Flex] Spring BlazeDS Integration AppEngine위에서 간단히 구동 후기
Posted in 스프링(Spring) // Posted at 2009/09/28 01:26이번 Spring BlazeDS Integration 1.0.1릴리즈 기념과 Spring교육 끝난 기념으로 간만에 삽질해봤습니다.
하지만, messaging 등의 심화적인 것은 못해보구요. 우선 서비스를 가져오는지만 해봤습니다.
삽질환경
- IDE
Eclipse3.5와 구글앱앤진 플러그인 - http://code.google.com/intl/ko-KR/eclipse/docs/download.html
Flex Builder 3.0.2
JDK 1.6.0 U14
- 라이브러리
Spring Framework 2.5.6
BlazeDS 3.2.0.3978
Spring BlazeDS Integration 1.0.1
Jackson 1.2.0
Cglib 2.1.3
1. App Engine 프로젝트 생성
프로젝트 생성하고 나서 라이브러리들을 다 복사합니다. 저는 아래와 같이 라이브러리를 복사했습니다.
기존App Engine lib, spring.jar, spring-webmvc.jar, blazeds.war에 있는 lib, jackson-core-lgpl-1.2.0.jar, jackson-mapper-lgpl-1.2.0.jar, cglib-nodep-2.1_3.jar, org.springframework.flex-1.0.1.RELEASE.jar
그리고, appengine-web.xml파일에 한줄 추가합니다.
<sessions-enabled>true</sessions-enabled>이거 필요한건지는 잘 모르겠군요-_-
WEB-INF폴더아래 blazeds.war파일에 들어있는 flex폴더를 복사합니다(*-config.xml의 파일이 있는 것)
2. 서비스 클래스 생성
이제 서비스를 만들어봅시다. 초간단 헬로우서비스를-_-
src폴더에 만들어봅시다. 전 com.mudchobo.springblazedsserver.service패키지에 HelloService클래스를 생성했음!
HelloService.java
package com.mudchobo.springblazedsserver.service;
public class HelloService {
public String sayHello(String name) {
return "Hello, " + name;
}
}3. 설정파일 생성 및 설정
스프링관련 설정을 해야해요. web.xml에서 디폴트로 설정된 servlet설정을 지우고 아래를 추가
web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/config/*-context.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- SpringDispatcherServlet -->
<servlet>
<servlet-name>flex</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>flex</servlet-name>
<url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>flex라는 이름의 서블릿을 만들었으니 스프링 설정파일이름인 flex-servlet.xml을 생성합니다.
flex-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:flex="http://www.springframework.org/schema/flex"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/flex
http://www.springframework.org/schema/flex/spring-flex-1.0.xsd">
<flex:message-broker />
<flex:remoting-destination ref="helloService"/>
</beans>flex라는 네임스페이스를 제공하는데요. <flex:message-broker />이 한줄로 모든 설정이 되어버립니다. M1 삽질했을 때에는 네임스페이스 없어서 bean써주고, 다 설정했던 기억이 나네요. 네임스페이스로 한줄로-_-
remoting-destination태그는 destination을 설정하는 건데, 해당 bean을 ref하면 해당 bean이름으로 destination으로 flex에서 가져올 수 있어요.
그럼 서비스를 설정할 설정파일을 생성해봅시다. configlocation을 /config/*-context.xml을 잡았는데, /config/services-context.xml파일을 만들어봅시다^^
services-context.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="helloService" class="com.mudchobo.springblazedsserver.service.HelloService" />
</beans>방금 만든 HelloService를 bean으로 설정.
마지막으로 flex/services-config.xml에서 default-channels를 추가합시다.
<services>
<service-include file-path="remoting-config.xml" />
<service-include file-path="proxy-config.xml" />
<service-include file-path="messaging-config.xml" />
<default-channels>
<channel ref="my-amf"/>
</default-channels>
</services>그리고 이것도 추가해야해요.
<system>
<manageable>false</manageable>
....
</system>이거 추가안하면 앱엔진에서 이런 에러로그를 뿜음-_-
org.springframework.beans.factory.BeanCreationException: Error creating bean with name '_messageBrokerDefaultHandlerMapping': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '_messageBroker': Invocation of init method failed; nested exception is org.springframework.beans.factory.BeanInitializationException: MessageBroker initialization failed; nested exception is java.lang.NoClassDefFoundError: java.lang.management.ManagementFactory is a restricted class. Please see the Google App Engine developer's guide for more details.
관리자 기능이라고 하는 것 같은데, 정확히 뭔지는 잘 모르겠지만, 끄면 잘 됩니다-_-
4. 클라이언트 프로젝트 생성
flex project를 생성할 때 이렇게 생성해주면 편합니다.
Flex Project선택 -> Project name쓰고, Application server type은 J2EE, Create combined Java~~는 체크해제, Use remote object access service는 체크하고, Next.
그 다음 Serverlocation 셋팅을 Root folder는 AppEngine의 war폴더를 지정해주면 되구요.
Root URL은 앱엔진 기본 실행 경로인 http://localhost:8080하면 되구요. Context root는 /로 지정하면 됩니다.
그러면 디버그나 Run시에 localhost:8080/프로젝트명/프로젝트명.html로 실행이 돼요.
코드는
SpringBlazeDSClient.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:RemoteObject id="srv" destination="helloService" />
<mx:TextInput id="inputName" />
<mx:Button label="전송" id="btnConfirm" click="srv.sayHello(inputName.text)" />
<mx:Label id="labelResult" text="{srv.sayHello.lastResult}" />
</mx:Application>이 코드 너무 활용하는 것 같아-_- 암튼 destination은 helloService로 설정했기 때문에 이걸로 지정하면 됩니다.
5. 이제 배포 및 실행
이제 swf파일도 appengine프로젝트에 생성하고, AppEngine을 배포하고 실행하면 또다른 에러를 보실 수 있습니다-_-
[RPC Fault faultString="Detected duplicate HTTP-based FlexSessions, generally due to the remote host disabling session cookies. Session cookies must be enabled to manage the client connection correctly." faultCode="Server.Processing.DuplicateSessionDetected" faultDetail="null"]
와....미쳐버립니다. 이건 뭔가....검색해보니 앱엔진이 여러 서블릿배포할 때 1개의 클라이언트 정보를 동일하게 배포를 해서 어쩌구 라고 번역기를 돌리니 써있네요-_- 이걸 픽스한 jar파일이 돌아다닙니다-_-
기존 flex-messaging-core.jar파일을 위 파일로 교체해주면 되더군요.
이제 실행하면 잘 될겁니다.
실행주소입니다.
http://mudchobo1.appspot.com/SpringBlazeDSClient/SpringBlazeDSClient.html


스크린샷.....
참고사이트
http://www.adobe.com/jp/devnet/flex/articles/google_app_eng_w_beazeds_p2.html
http://martinzoldano.blogspot.com/2009/04/appengine-adobe-blazeds-fix.html
-
빠방
좋은 예제 감사드립니다 (꾸벅)
덕분에 spring blazeds intergration 1.0.1과 ibatis 연동에 성공했습니다.
이전에 올려주신 연동예제와 새로 릴리즈된 1.0.1 예제가 아니었으면 짧은 영어실력때문에 도저히 알아먹지 못해고 포기해버렸을꺼에요 ㅠㅠ -
-
-
암튼, BlazeDS를 하셨다면 그리 어렵지 않군요.
이번에도 간단하게 소녀시대예제를 통해...접근해봅시다-_-;
간단히 데이터를 불러오고, 저장도 해보는 그런 애플리케이션을 만들어봅시다.
우선 Eclipse에서 php가 가능하도록 해야하는데요. 뭐 그냥 editplus에서 해도 상관없습니다. Zend홈페이지에 가면 자기네들 IDE깔라고 합니다-_-; Zend Studio라는 게 있네요. 뭐 php단은 netbeans를 이용해서 개발하셔도 되고, 이클립스에 있는 PDT를 추가하셔서 해도 상관없어요~ ^^ 전 NetBeans를 선호합니다. 좋아요!
DB입니다.
DROP TABLE IF EXISTS `sosi`.`sosi`;
CREATE TABLE `sosi`.`sosi` (
`idx` int(10) unsigned NOT NULL AUTO_INCREMENT,
`sosiname` varchar(45) NOT NULL,
`height` int(10) unsigned NOT NULL,
`blood` varchar(45) NOT NULL,
PRIMARY KEY (`idx`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
INSERT INTO `sosi` (`idx`,`sosiname`,`height`,`blood`) VALUES
(1,'윤아',166,'B'),
(2,'수영',170,'O'),
(3,'효연',160,'AB'),
(4,'유리',167,'AB'),
(5,'태연',162,'O'),
(6,'제시카',163,'B'),
(7,'티파니',162,'O'),
(8,'써니',158,'B'),
(9,'서현',168,'A');우선 Flex Project를 만듭니다.
여기서 Application server type을 php로 하세요~ php로 하게 되면 설정된 폴더로 swf를 바로 위치시킬 수 있어요!
Project name은 ZendAmfTest -> Web root는 아파치가 돌아가는 폴더를 지정하면 됩니다.
저는 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs여기군요.
Root URL은 http://localhost/ Finish때려주면 ZendAmfTest-debug폴더에 swf가 생기죠.
요 아래 주소에서 ZendAMF를 받을 수 있습니다.
http://framework.zend.com/download/amf
받은 다음에 압축을 풀면 library폴더 안에 Zend라는 폴더가 있는데 통채로 복사해서 src폴더 아래에 놓습니다.
그리고 php파일을 하나 만드세요. ValueObject입니다. Java에서 bean같은..-_-;
SosiVo.php
<?php
class SosiVo {
public $idx;
public $sosiname;
public $height;
public $blood;
}
?>이제 서비스를 하나 만들어봅시다. SosiService입니다.
SosiService.php
<?php
require_once 'SosiVo.php';
//conection info
define("DATABASE_SERVER", "localhost");
define("DATABASE_USERNAME", "root");
define("DATABASE_PASSWORD", "mudchobo");
define("DATABASE_NAME", "sosi");
class SosiService {
public function getData() {
$mysql = mysql_connect(DATABASE_SERVER, DATABASE_USERNAME,
DATABASE_PASSWORD);
mysql_select_db(DATABASE_NAME);
$query = "SELECT idx, sosiname, height, blood FROM sosi";
$result = mysql_query($query);
$ret = array();
while ($row = mysql_fetch_object($result)) {
$tmp = new SosiVo();
$tmp->idx = $row->idx;
$tmp->sosiname = $row->sosiname;
$tmp->height = $row->height;
$tmp->blood = $row->blood;
$ret[] = $tmp;
}
mysql_free_result($result);
return $ret;
}
}
?>php의 array는 ActionScript3의 array와 호환됩니다.
서비스를 만들었으니 EndPoint페이지를 만들어줘야합니다.
amf.php
<?php
require_once 'Zend/Amf/Server.php';
require_once 'SosiService.php';
$server = new Zend_Amf_Server();
$server->setClass("SosiService");
$server->setClassMap("SosiVo", "SosiVo");
echo($server -> handle());
?>이제 이것을 연결시켜줄 service-config.xml파일을 만들어야합니다.
<?xml version="1.0" encoding="UTF-8"?>
<services-config>
<services>
<service id="amfphp-flashremoting-service"
class="flex.messaging.services.RemotingService"
messageTypes="flex.messaging.messages.RemotingMessage">
<default-channels>
<channel ref="my-zend"/>
</default-channels>
<destination id="zend">
<properties>
<source>*</source>
</properties>
</destination>
</service>
</services>
<channels>
<channel-definition id="my-zend"
class="mx.messaging.channels.AMFChannel">
<endpoint uri="http://localhost/ZendAmfTest-debug/amf.php"
class="flex.messaging.endpoints.AMFEndpoint"/>
</channel-definition>
</channels>
</services-config>우선 default로 my-zend라는 채널을 잡았는데, my-zend는 endpoint uri가 ~~/amf.php입니다. 우리가 좀전에 작성했던 endpoint죠. 새로운 서비스가 추가되어 새로운 endpoint를 작성하게 될 때 endpoint파일을 amf1.php라고 했을 때 이곳에 추가해서 channel에 기입할 수도 있고, <mx:RemoteObject>에서 endpoint를 해당 uri로 바꿔주는 방법 2가지가 있습니다.
그럼 이제 Flex쪽으로 넘어가봅시다.
ZendAmfTest.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
creationComplete="creationCompleteHandler()">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
private function creationCompleteHandler():void
{
roSosi.getData();
}
private function faultHandler(event:FaultEvent):void
{
Alert.show(event.message.toString());
}
private function resultGetDataHandler(event:ResultEvent):void
{
dgSosi.dataProvider = event.result as Array;
}
]]>
</mx:Script>
<mx:RemoteObject id="roSosi" fault="faultHandler(event)" destination="zend" source="SosiService">
<mx:method name="getData" result="resultGetDataHandler(event)" />
</mx:RemoteObject>
<mx:DataGrid id="dgSosi" width="100%" height="100%">
<mx:columns>
<mx:DataGridColumn headerText="아이디" dataField="idx"/>
<mx:DataGridColumn headerText="소녀시대이름" dataField="sosiname"/>
<mx:DataGridColumn headerText="신장" dataField="height" />
<mx:DataGridColumn headerText="혈액형" dataField="blood" />
</mx:columns>
</mx:DataGrid>
</mx:Application>만약 다른 서비스를 추가하게 된다면, <mx:RemoteObject>에서 endpoint를 다른 url로 잡아주면 됩니다.
<mx:RemoteObject id="roAnother" fault="faultHandler(event)"
destination="zend" source="AnothorService"
endpoint="http://localhost/ZendAmfTest-debug/another_amf.php">아님 service-config.xml에서 channel을 다르게 해서 destination을 다르게 설정해도 되구요.

ps1. 다른 예제에서는 2개의 service를 이용한 예제가 없더라구요. 그래서 사실 저렇게 하는 게 맞는지 잘 모르겠습니다. 다른 방법이 있을 수도 있구요^^ 암튼, 제가 삽질한 바로는 서비스당 1개의 php파일을 만들어야 하더라구요.
ps2. PHP를 시작한지 얼마 안되었는데, DB연동 시 한글이 깨지더라구요. 인코딩을 my.ini과 php.ini에 utf-8로 맞췄는데, ???로 인식해서 나오는 경우가 있더라구요. php파일에서 db정보를 출력하니 이상하게 그냥 로컬에서 쳤을 때에는 utf-8로 나오는데, php파일이 출력한 db정보는 latin으로 나올 때가 있더라구요. 이 경우 my.ini파일에 이 부분을 추가해주면 됩니다.
[mysqld] 아래에
character-set-client-handshake = FALSE
client 인코딩으로 강제 셋팅하는거라고 하더라구요. 저는 처음에 ??? 뜨길래 이걸로 해결봤습니다-_-;
아 또 다른 방법으로 쿼리날리기 전에 set names 'utf8'이라고 먼저 날려줘도 됩니다.
mysql_query("SET NAMES 'utf8'");ps3. 이런...생각해보니 client에서 VO를 안만들어줬군요-_-;
참고자료
http://corlan.org/2008/11/13/flex-and-php-remoting-with-zend-amf/
덧. 채널 못찾는 에러는 아래 주너니님의 댓글을 참조하세요~ 컴파일옵션을 추가해야합니다^^
주너니님 감사합니다 ^^
-
지돌스타
매우 유용하군요. PHP에서도 AMFPHP는 AMF0만 지원했던걸로 알고 있는데 AMF3까지 지원한다고 하니... 매우 좋은걸요. 개인적으로 php로 할 프로젝트가 있었는데 적절한 시기에 소개해주셔서 참 감사합니다. 이걸 사용해야겠네요.
-
머드초보
앗 지돌스타님^^
저도 php를 배운지 얼마 안되었는데, 데이터연동부분에 관한 자료를 찾다보니 Zend Amf가 있더라구요^^ 방문해주셔서 감사해요~^^
-
-
주너니
안녕하세요. 좋은정보 감사합니다.
내용중에 약간 잘못된게 있는것 같아서 저도 꽤 삽질했네요 ^^;;
amf.php
<?php
require_once 'Zend/Amf/Server.php';
require_once 'SosiService.php';
$server = new Zend_Amf_Server();
$server->setClass("SosiService"
;
$server->setClassMap("SosiVo", "SosiVo"
;
?>
마지막에 echo($server -> handle()); 가 빠진것 같네요.
그리고 $mysql_query("SET NAMES 'utf8'"
; -> mysql_query("SET NAMES 'utf8'"
;
이렇게 되야될거 같고요~
마지막으로 channel 을 못찾는 에러가 나시는 분들은
해당 프로젝트 Properties -> Flex Compiler -> Additional compiler arguments 에
-services "D:\work\test\service-config.xml"
식으로 service-config.xml 이 있는 절대경로값을 추가해주셔야 합니다.
그럼 좋은정보 감사합니다. 수고하세요~ -
-
햇무리
좋은 글 정말 잘 봤습니다.
AMFPHP가 느리다고 해서 망설이고 있었는데 좋은 게 있었네요.
그런데 zendamf를 http://framework.zend.com/download/amf 에서 받아서 하니까 Minimal이고
Zend폴더 밑에 Loader 폴더가 없어서 에러가 나더라구요.
그래서 http://framework.zend.com/download/current/ 에서 Full로 받아서 해보니 되네요.
물론 3월에 해보신거라 그때는 잘 되었을지도 모르겠네요.
앞으로 해보시는 분들은 참고하세요.
감사합니다.
(그런데 한글깨지는거
character-set-client-handshake = FALSE 로 하면 된다고 하셨는데 어떻게 하는지 잘 모르겠어요... ㅠㅠ
mysql_query("SET NAMES 'utf8'"
; 를 쓰는 것보다는 이게 더 좋을 것 같은데요.)-
머드초보
아....그거 mysql옵션 수정하셔야합니다.
mysql.ini파일인가-_- 설정파일이 있는데, 그걸 수정해서 mysql다시 리셋해주면 돼요 ^^
방문해주셔서 감사해요~ ^^좋은 정보도 감사해요!
-
-
햇무리
오... 잘 되네요... 감사합니다.
그런데 또 안되는 것이 있네요... ㅠㅠ
서비스 여러개 넣는거 해보는데 잘 안되요.
위에 말씀하신 두가지를 다 해보고 있는데 워낙 zend에 대한 지식도 없고 하니 잘 안되네요.
service-config.xml와 flex쪽에서 어떻게 바꾸면 될까요?
-----
몇시간 후...
저도 삽질끝에 성공을 했어요... ^^
이젠 저장하는 것을 해봐야 겠어요. 감사합니다.-
머드초보
와 축하드립니다^^
저도 이거 삽질했던 때가 생각나는군요.
저도 조만간 이것을 쓰게 될 듯-_- 뭔가 개발해야하는데 서버가 php거든요^^
-
-
햇무리
netbeans을 사용하신다고 했는데요.
zend amf와 사용할때 php debug를 netbeans으로 어떻게 하나요?
해보려고 하는데 잘 안되서요.
php 코드쪽 문제 발생할 경우가 많은데 디버깅 없이는 코딩이 어려울 것 같아요.
부탁드립니다. ^^-
머드초보
디버깅을 하시려면 XDEBUG라는 디버거를 설치해야합니다.
검색 하시면 셋팅하는 것이 다 나올꺼에요 ^^
xdebug입니다!
-
-
햇무리
감사합니다. xdebug라는 것이 있었네요.
방금 php만 테스트 해봤는데 잘되네요.
이젠 flex와도 되는지 봐야겠네요. ^^-
머드초보
아네 이클립스에서도 php랑 다 할 수 있는데, ide가 전 따로 있는 게 더 편하더라구요. 그래서 서버는 넷빈즈, 클라이언트는 flex를 ^^
그럼 둘다 디버깅을 편하게 할 수 있어요^^
방문해주셔서 감사해요~
-
-
붉은고래
좋은 정보 감사합니다..^^
댓글 정보도 너무 유용하네요...
오류가나서 이것저것 해보다가 댓글에서 해답들을 찾았네요..감사 감사 ^^ -
-
-
-
행복한 아침
환경 : window2003,php5.2,Mysql5.1,Flex builder 3
위의 절차를 따라 실행을 하면 계속 이런 메시지가 떠는데
제가 초보자라 무슨 뜻인지 잘 모르겠네요..
정말 며칠동안 계속 이문제를 풀려고 했지만 도저히 무슨 영문인지 잘 모르겠습니다.
왜 이러한 현상이 나는지 바쁘시겠지만 알려주시면 감사드립니다.
(mx.messaging::ChannelSet)#6
clientId = (null)
connected = false
defaultHeaders = (null)
destination = "zend"
id = "D0577C34-67E2-48B1-A580-CCFC96CE62A1"
reconnectAttempts = 0
reconnectInterval = 0
requestTimeout = -1
subtopic = ""
connected = false
connectTimeout = -1
enableSmallMessages = true
endpoint = "http://localhost:81/ZendAmfTest-debug/amf.php"
failoverURIs = (Array)#11
id = "my-zend"
mpiEnabled = false
netConnection = (flash.net::NetConnection)#12
client = (mx.messaging.channels::AMFChannel)#4
connected = false
objectEncoding = 3
proxyType = "none"
uri = "http://localhost:81/ZendAmfTest-debug/amf.php" -
[Spring/Flex] Spring BlazeDS Integration 1.0.0.M1 삽질 후기-_-;
Posted in 스프링(Spring) // Posted at 2008/12/27 02:39사실 Spring Bean을 BlazeDS에서 사용하는 것은 이미 다른 사람들이 많이 만들었죠^^ 근데 스프링소스에서 공식적으로 지원을 해주다니 대단합니다^^ 제가 한번 해봤습니다-_-; 스프링과 BlazeDS의 기본만 알고 있어서 하는데에는 무리가 없었습니다-_-;
환경 : JDK 6 U 10 + Tomcat 6.0.18 + BlazeDS 3.2.0.3978 + Spring BlazeDS Integration 1.0.0.M1 + Flex SDK 3.2 + Flex Builder 3.0.2 + SpringFramework 2.5.6
SpringFramework 2.5.6 Download
BlazeDS 3.2.3978 Download
Spring BlazeDS Integration Download
쉬운 개발환경을 위해 플렉스빌더에서.....
New Flex Project -> Project name은 SpringBlazeDS, Web application을 선택하고, Application server type은 J2EE로 합니다 ^^ Next를 하시면 Target runtime은 Tomcat 6.0, Flex WAR파일은 BlazeDS를 다운로드해서 blazeds.war파일을 선택합니다. Finish를 때려줍니다-_-;
프로젝트의 Properties에서 Flex Server에 보면 Context root부분이 /WebContent로 되어있는데, /SpringBlazeDS로 바꿔줍니다.
라이브러리는 Spring에서 spring.jar, spring-webmvc.jar, Spring BlazeDS Integration에서 org.springframework.flex-1.0.0.M1.jar를 WEB-INF/lib폴더에 복사하면 됩니다.
자바쪽 셋팅을 해봅시다.
Webcontent/WEB-INF/web.xml파일을 열어서 수정합니다.
기존에는 MessageBrokerServlet을 사용해서 하는데, Spring BlazeDS Integration에서는 Spring Servlet을 사용합니다. MessageBroker Servlet을 servlet-mapping과 함께 지워주고, Spring Servlet을 선언합니다.
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>SpringBlazeDS</display-name>
<context-param>
<param-name>flex.class.path</param-name>
<param-value>/WEB-INF/flex/hotfixes,/WEB-INF/flex/jars</param-value>
</context-param>
<!-- Http Flex Session attribute and binding listener support -->
<listener>
<listener-class>flex.messaging.HttpFlexSession</listener-class>
</listener>
<!-- Spring Dispatcher Servlet -->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
설정파일을 작성하기 전에 초간단 스프링 빈을 하나 만들어봅시다.
service패키지를 하나 만들고, HelloService라는 클래스를 만듭시다.
package service;
public class HelloService {
public String sayHello(String name) {
return name + "! 메리추석!";
}
}
이제 /WebContent/WEB-INF/applicationContext.xml파일을 생성합니다.
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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="mySpringManagedMessageBroker"
class="org.springframework.flex.messaging.MessageBrokerFactoryBean" />
<!-- Maps request paths at /messagebroker to the BlazeDS MessageBroker -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"
p:mappings="/*=mySpringManagedMessageBroker" />
<!-- Dispatches requests mapped to a MessageBroker -->
<bean class="org.springframework.flex.messaging.servlet.MessageBrokerHandlerAdapter"/>
<bean id="helloService" class="service.HelloService" />
<bean id="hello"
class="org.springframework.flex.messaging.remoting.FlexRemotingServiceExporter"
p:messageBroker-ref="mySpringManagedMessageBroker"
p:service-ref="helloService"/>
</beans>
기존 MessageBroker가 Spring에 의해 관리된 MesssageBroker로 들어있는 것 같습니다. 그래서 Remote요청이 들어오면 Spring MessageBroker가 해당 destination을 찾아서 해주는 것 같습니다. 그리고, Spring Bean인 helloService를 불러오는 방법은 FlexRemotingServiceExporter를 이용해서 하는 것 같습니다. 요청하고 싶은 Bean을 FlexRemotingServiceExporter에 DI를 해서 사용하는 것이군요.
이곳에서 FlexRemotingServiceExporter의 id가 destination입니다^^ 저기서 hello로 정의했으니 Flex에서는 destination을 hello로 맞춰주면 되겠죠? ^^
나중에 destination을 추가하는 것은 service-config.xml에서 하는 것이 아니라 이곳에서 해야겠죠.
제가 잘못 이해하고 있는 것이 좀 많은 것 같아서...원문을 참조하세요~ ^^
이제 service-config.xml에 추가해야할 부분이 있습니다.
<services>
<service-include file-path="remoting-config.xml" />
<service-include file-path="proxy-config.xml" />
<service-include file-path="messaging-config.xml" />
<default-channels>
<channel ref="my-amf"/>
</default-channels>
</services>
아....중요합니다. default-channels를 추가해야합니다!
이제 클라이언트로 가봅시다.
SpringBlazeDS.xml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:RemoteObject id="srv" destination="hello" />
<mx:TextInput id="inputName" />
<mx:Button label="전송" id="btnConfirm" click="srv.sayHello(inputName.text)" />
<mx:Label id="labelResult" text="{srv.sayHello.lastResult}" />
</mx:Application>
RemoteObject로 sayHello함수를 input에 입력해서 결과를 Label에 쓰는 간단한 프로그램입니다.
서버를 실행시키고 실행해봅시다.

2008. 12. 27 오전 2:31:42 org.springframework.flex.messaging.servlet.MessageBrokerHandlerAdapter handle
정보: Channel endpoint my-amf received request.
젠장......어느카테고리에 넣어야 하지-_-; Spring에 넣자-_-;
-
열이아빠
저는 이제 막 스프링 공부를 다시 시작하고 있습니다.
아무래도 무개념 상태라..ㅠㅠ
내년 정식 릴리즈 전에는 좀 준비를 해야 할텐데요.
카테고리는 'Spring/Flex' 를 따로 만드셔도 좋지 않을까요.^^-
머드초보
저도 스프링 공부를 안한지오래돼서 ㅠ
간만에 스프링프레임워크 홈페이지에 가니 많이 바뀌었더라구요^^
이것저것 제품도 많이 나왔구요. 저도 공부를 다시 해봐야겠습니다 ㅠ
-
-
-
-
아이
대박인데! 이런게 조금만 더 빨리 나왔더라면~!ㅠㅠ
트랜젝션이랑 라우팅소스 적용할려면 별의별 삽질한걸 생각하면...ㅠㅠ -
-
-
머드초보
destination은 지정합니다.
<mx:RemoteObject id="srv" destination="hello" />
이 destination명은 FlexRemotingServiceExporter의 명과 같아야합니다
-
-
-
머드초보
음.....뭔가 잘못된 것도 없어보이는데....
service-config에 이부분도 추가했나요?
<default-channels>
<channel ref="my-amf"/>
</default-channels>
전 이것때문에 몇시간 날린 적이 있습니다만-_-;
정 안되시면 mudchobo@nate.com으로 문의주세요.
-
-

이버리
안녕하세요^^ 어제 메일보냈던 사람입니다..
답장 잘받았습니다.. 감사합니다..
프로젝트 생성시 WEB으로 선택하고 하니 잘되네요
감사합니다. -
-
-
-
-
-
도니도니
안녕하세요~ LCDS로도 해보셨는지 궁금하네요.
BlaseDS를 사용했을 시에는 잘 작동하는데 LCDS로는 안되네요.
버전은 2.5, 2.6 두개 테스트 해보았습니다.
먼가 설정을 잘못 한것인지 원래 LCDS는 안되는것인지 ..값비싼 LCDS를 지원한해줄리가..-_ --
머드초보
LCDS는 제가 안해봤네요.
음 LCDS는 안되는군요-_-
왜 안되는지 모르겠네요 ㅠ 분명 일부기능을 오픈소스한걸로 알고있는데 ㅠ
-
-
jsP
머드초보님 안녕하세요. 해당 글 따라해보다가, 플렉스프로젝트 만드는 부분에서요. runtime서버 지정해주는 부분과 war파일 지정해주는 부분이 어디에 있나 해서요;; 저 플렉스빌더3 쓰는데 그런 부분은 안보이는데요 ㅠㅠ 혹시 이클립스 프로젝트에서 war파일 import해서 만드는 건가요?? 참고로 전 플렉스빌더와 이클립스가 따로따로 설치되어 있습니다.
-
머드초보
안녕하세요~ 따로 사용하신 다면 이클립스에서 war를 import하는 게 맞습니다.
그리고, 이클립스에서 톰캣돌려놓고, 빌더에서는 이걸 요청하는 걸 코딩해야합니다. ^^
-
[Flex] Flex와 javascript간의 통신을 쉽게 해주는 FABridge 사용후기.
Posted in 플렉스(Flex) // Posted at 2008/08/06 16:33우선 처음에 접하게 되면 혈압을 약 50%를 상승시켜주는 효과를 가져다 줍니다.
그 이유는 로컬에서는 테스트를 할 수 없습니다-_-;
즉, file:///D:/workspace/flex/~~~ 요런 경로에서는 실행할 수 없습니다.
처음에 그냥 flex builder에서 실행할 때에는 아무런 경고가 뜨지 않습니다. 하지만, export해서 build release를 한다음에 bin-release에 있는 html파일을 실행하면 요런 에러가 뜹니다-_-; 이걸로 혈압이 10%상승했죠.
at flash.external::ExternalInterface$/_initJS()
at flash.external::ExternalInterface$/addCallback()
at bridge::FABridge/initializeCallbacks()
at bridge::FABridge()
at FABridgeTest/_FABridgeTest_FABridge1_i()
at FABridgeTest()
at _FABridgeTest_mx_managers_SystemManager/create()
at mx.managers::SystemManager/initializeTopLevelWindow()
at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::docFrameHandler()
프로젝트를 생성할 때 ProjectName에 FABridgeTest로 하고, Web application으로 하고, Application ServerType을 J2EE로합니다. 톰캣을 사용하는 겁니다. 이렇게 생성한 놈은 실행할 때 http://localhost:8080/프로젝트명/프로젝트명.html로 실행해주기 때문에 테스트를 할 수 있습니다.
Next를 하고, Target runtime에 tomcat을 설정해주고, Flex War파일에는 blazeds.war파일을 선택합니다. Finish를 선택하여 프로젝트를 만듭니다.
기존에 있던 index.templete.html은 FABridge사용에 문제가 좀 있어서 다시 생성만들어야합니다.
http://olegflex.blogspot.com/2008/06/swfobject-2-flex-template.html
여기에 가면 templete을 만들어 놓은 것이 있는데 다운받고 압축을 풀면, html-template폴더가 있는데, 기존의 html-template폴더 날려버리고, 이걸로 대체합니다.
이제 필요한 것은 FABridge.js파일인데, 이 파일은 기존의 것을 사용하면 swfobject 2.1에서는 사용할 수 없습니다. 그래서 수정한 버전이 필요합니다. 기존것으로 하려다 혈압이 약 20%상승한 듯 합니다.
http://www.swffix.org/swfobject/swfobject_flex3/
이곳에 가면 예제와 FABridge.js와 history.js파일이 있는데 이걸 html-templete폴더와 ./history폴더에 각각 복사합니다.
예제를 만들어봅시다.
index.templete.html파일을 열어서 bridgeName을 지정해줍니다.
var flashvars = {
bridgeName: "mudchobo"
};
지정해주지 않으면 flash가 디폴트가 됩니다.
html-templete폴더에 test.js파일을 만들어서 테스트를 만들어봅시다.
test.js
var flexApp;
FABridge.addInitializationCallback( "mudchobo", function() {
flexApp = FABridge.mudchobo.root();
var callback = function() {
alert('flex로 호출한 javascript메소드');
}
flexApp.getMyButton().addEventListener("click", callback);
});
function callFlexFunction() {
flexApp.flexFunction('javascript로 호출한 flex메소드');
}
FABridge.addInitializationCallback함수는 birdge이름이 mudchobo인 flash가 초기화가 다 되면 호출이 되는 듯합니다. 로드가 다 된 상태면 저 뒤에 함수를 호출하게 되는 듯합니다.
window.onload에다가 때려박으면 FABridge.mudchobo가 undefined가 되더라구요. 이걸로 혈압이 약 10%상승했습니다.
javascript에서 flex버튼 이벤트가 발생했을 때 이벤트를 걸 수 있습니다. getMyButton()네이밍 룰은 flex에서 버튼 id가 myButton이면 getMyButton으로 해당 컴포넌트를 가져올 수 있습니다. id가 mudchobo면 getMudchobo()가 되겠죠. addEventListener에 click시 callback함수를 호출하도록 이벤트를 추가합니다.
그리고, callFlexFunction이라는 메소드를 추가해서 이것은 flex메소드를 호출하는 겁니다.
flexApp객체를 통해 그냥 함수명을 호출하면 호출이 됩니다.
index.templete.html에다가는 head부분에다가
<script type="text/javascript" src="FABridge.js"></script>
<script type="text/javascript" src="test.js"></script>
body부분에다가 button을 추가
<div>
<input type="button" id="javascriptButton" value="callFlex" onclick="callFlexFunction();"/>
</div>
이제 flex코드로 가봅시다. 우선 FABridge.as파일이 필요합니다. 이 파일은 C:\Program Files\Adobe\Flex Builder 3 Plug-in\sdks\3.0.0\frameworks\javascript\fabridge\src에 있습니다. 아주 꼭꼭 숨겨두셨어요-_-;
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
xmlns:bridge="bridge.*" width="300" height="150">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
public function flexFunction(data:String):void
{
Alert.show(data);
}
]]>
</mx:Script>
<mx:Button id="myButton" label="callJavaScript" />
<bridge:FABridge />
</mx:Application>
중요한 점은 xmlns:bridge="bridge.*"랑 <bridge:FABridge /> 입니다.
이제 실행을 해봅시다.
아...여기서 이제 html-templete내용의 js파일을 고쳤는데 파폭에서 열고 소스보기하면 안바뀌어 있을 때가 있습니다. 그때는 Flex메뉴에서 Project -> clean을 해주면 되더라구요. 이걸로 혈압 10%상승!
실행하면 localhost로 뜨기 때문에 잘 될 겁니다. 소스파일입니다.
다음시간엔 실제 ajax를 요청해봐야겠다-_-;
-
-
-
-
머드초보
핫핫 고혈압으로 쓰러져요 ^^
바로 댓글을 달아주는 센스-_-;
남들이 보면 일은 안하고 블로그만 하는줄알겠어요 ㅠㅠ
이제 일해야지 ㅠ
-
-
-
-
우람궁딩
올려두신 글 잘 보았습니다.
비슷한 고민을 하던 차에.. 참고가 될만한 반가운 글을 보았습니다.
...그런데..
만약.. 위와 같은 경우에는 플렉스 에플리케이션을 생성해야 하는데..
플렉스 모듈 컴포넌트를 사용할 경우에는 위 방법이 가능한지 궁금하네요..
만약 된다면.. 어떤 방법으로 가능한지 조언 부탁드립니다. nn
proverbs1609@empal.com-
머드초보
음...모듈로 생성한 경우에는 제가 안해봐서 모르겠네요 ㅠ
FABridge의 활용도는 그렇게 높은 것이 아니라서-_-
저도 실무에서 사용하는 것을 본적이 없군요-_-
-


flex-messaging-core-FIXED_1.jar
FABridgeTest.zip