2009-11-12 23 views
4

컨텍스트 : FDT로 개발되고 Flash CS4로 컴파일 된 Flash 응용 프로그램을 작성 중입니다. (거대한 라이브러리가 필요합니다). 그것은 다양한 Weborb 서비스에 연결해야합니다.services-config.xml (플렉스 없음)이없는 플래시 RemoteObject Weborb 연결

Weborb가 올바르게 구성되었습니다. 관리 콘솔을 통해 서비스가 제대로 실행되고 값이 반환됩니다. Flex로 컴파일 된 다양한 테스트뿐만 아니라 Weborb 예제도 완벽하게 기능합니다.

문제 : 나는 Flash를 사용하여 컴파일하는 코드와 설정이 같은 원격 객체에 적응하려고하면

faultCode: InvokeFailed 
faultString: '[MessagingError]' 
faultDetail: 'null' 

내가하려고하면 : 나는 다음과 같은 오류를 얻을

var remoteObject = new RemoteObject(); 
remoteObject.destination = "GenericDestination"; 
remoteObject.source = "MyServices.MyService"; 
remoteObject.addEventListener("fault", onFault); 
remoteObject.getFoo.addEventListener("result", onResult); 

을 이 방법으로 채널을 설정하려면 :

var channelSet:ChannelSet = new ChannelSet(); 
var amfChannel:AMFChannel = new AMFChannel("my-amf", 
    "http://localhost/weborb/weborb.php"); 
channelSet.addChannel(amfChannel); 

var remoteObject = new RemoteObject(); 
remoteObject.channelSet = channelSet; 
remoteObject.destination = "MyServices/MyService"; 

다음 오류가 발생합니다.

faultCode: Client.Error.MessageSend 
faultDetail: Channel.Connect.Failed 
url: 'null' 

질문 : FlashObject로 컴파일 된 Flash 애플리케이션에서 WebObject Remoting 서비스에 연결하기 위해 RemoteObject를 올바르게 설정하는 방법은 무엇입니까?

이것은 나를 미치게합니다.

답변

0

얼마 전부터이 post입니다. 아마도 이것이 도움이 될 것입니다.

var channelSet:ChannelSet = new ChannelSet(); 
var channel:Channel = new AMFChannel("my-amf", "http://localhost/weborb/weborb.php"); 
channelSet.addChannel(channel); 

var ro:RemoteObject = new RemoteObject("SomeCustomDestination"); 
ro.source = "Full.Class.Name.With.Namespace"; 
ro.channelSet = channelSet; 

// invoking service 
var op:AbstractOperation = ro.getOperation("SomeCustomMethod"); 
op.addEventListener(ResultEvent.RESULT, onResult); 
op.send(params); 

SomeCustomDestination이 서버에서 필요로 WEB-INF/flex/services-config.xml에 정의되어 있지만, 클라이언트 액세스를 식별 할 필요가 :

2

나는 프로그래밍 방식으로 RemoteObject을 구성하려면이 코드를 사용하고 있습니다. 서버가 대상에 대한 액세스 정책 (보안 제약 조건)을 발행 할 수 있습니다.