java - 无法从 BlazeDS 绑定(bind) RemoteObject

标签 java apache-flex blazeds remoteobject bindable

我在 Tomcat7 和 Flex 中使用 BlazeDS。我正在尝试在客户端和服务器之间使用自定义类。 如:

package
{
   [Bindable]
   [RemoteClass(alias="remoting.Product")]
   public class Product 
   {
      public var name:String;
      public var id:int;
      public var isVisible:Boolean;
   }
}

在 Java 中:

package remoting;
public class Product {

    public String name;
    public int id;
    public Boolean isVisible;

    public Product(){
            name = "Product 0.1";
            id = 123;
            isVisible = false;
    }
    public void setName(String _name){
            name = _name;
    }
    public void setId(int _id){
            id = _id;
    }
    public void setVisible(Boolean _isVisible){
            isVisible = _isVisible;
    }
}

服务部分:

public Product echo() {
        Product product = new Product();
        product.setId(123);
        product.setName("My Product");
        product.setVisible(true);
        return product;
}

我可以成功设置 RemoteObject 的目标并调用 echo() 方法。结果事件被触发,Product 对象位于 event.result 中。但是,它不包含任何敏感数据。 AS 类中的变量仅使用 null、0 和 true 值进行初始化。我想知道出了什么问题。我尝试从 Product 返回一个带有参数的字符串,它工作正常,所以它们设置得很好。问题出在映射上。

我可以采取另一种方式并实现Externalized,但我不明白示例中的这一部分:

 name = (String)in.readObject();
 properties = (Map)in.readObject();
 price = in.readFloat();

如果有多个字符串怎么办?

干杯。

最佳答案

在java类中:使用私有(private)字段并实现getter。

package remoting;
public class Product {

    private String name;
    private int id;
    private Boolean isVisible;

    public Product() {
            name = "Product 0.1";
            id = 123;
            isVisible = false;
    }
    public void setName(String _name){
            name = _name;
    }
    public String getName(){
            return name;
    }
    public void setId(int _id){
            id = _id;
    }
    public int getId(){
            return id;
    }
    public void setIsVisible(Boolean _isVisible){
            isVisible = _isVisible;
    }
    public Boolean getIsVisible() {
            return isVisible;
    }
}

关于java - 无法从 BlazeDS 绑定(bind) RemoteObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19204743/

相关文章:

java - 如何为 JTable 中的特定列编写焦点获得事件?

apache-flex - Flex 3 DataGrid 列宽问题

java - BlazeDS - 反序列化为 ActionScript 对象的对象无法转换为其子类(父类)

java - 这种非标准的 Java 同步模式有效吗?

java - 在带有着色器的 opengl es 中围绕自身旋转矩形

flash - Flex 4.6增加套接字接收缓冲区的大小

java - 有通用语言吗?

apache-flex - BlazeDS 认证

java - 将 Adob​​e Flex 前端与 Java 后端连接时,我创建的服务未显示在数据向导中

java - 带标签的break语句...下一步在哪里