2009-09-03 11 views
2

BlazeDSのドキュメントでは、ActionScriptとJavaオブジェクト間の明示的なマッピング方法を示しています。たとえば、これはRPCサービス(例:BlazeDSメッセージングサービスのActionScriptとJavaオブジェクト間のExplicitマッピング

import flash.utils.IExternalizable; 
import flash.utils.IDataInput; 
import flash.utils.IDataOutput; 

[Bindable] 
[RemoteClass(alias="javaclass.User")] 
public class User implements IExternalizable { 

    public var id : String; 
    public var secret : String; 

    public function User() { 
    } 

    public function readExternal(input : IDataInput) : void { 
     id = input.readObject() as String; 
    } 

    public function writeExternal(output : IDataOutput) : void { 
     output.writeObject(id); 
    } 
} 

import java.io.Externalizable; 
import java.io.IOException; 
import java.io.ObjectInput; 
import java.io.ObjectOutput; 
import java.util.HashSet; 
import java.util.Iterator; 
import java.util.Set; 

public class User implements Externalizable { 

    protected String id; 
    protected String secret; 

    public String getId() { 
     return id; 
    } 

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

    public String getSecret() { 
     return secret; 
    } 

    public void setSecret(String secret) { 
     this.secret = secret; 
    } 

    public void readExternal(ObjectInput in) throws IOException, 
      ClassNotFoundException { 
     id = (String) in.readObject(); 
    } 

    public void writeExternal(ObjectOutput out) throws IOException { 
     out.writeObject(id); 
    } 
} 

私はUserを返すRPCサービスを呼び出した場合、secretは、ワイヤを介して送信されていません。

これはメッセージングサービスでも可能ですか?つまり、カスタムメッセージングアダプタを作成して下の関数を使用すると、secretの送信を防止できますか?

MessageBroker messageBroker = MessageBroker.getMessageBroker(null); 
AsyncMessage message = new AsyncMessage(); 
message.setDestination("MyMessagingService"); 
message.setClientId(UUIDUtils.createUUID()); 
message.setMessageId(UUIDUtils.createUUID()); 
User user = new User(); 
user.setId("id"); 
user.setSecret("secret"); 
message.setBody(user); 
messageBroker.routeMessageToService(message, null); 

答えて

1

これはメッセージングでも有効です。もう1つの方法は、BeanProxy(このhereのすてきな例)を使用することです。

関連する問題