【问题标题】:SerializationProblem (?) of custom AsyncCallback自定义 AsyncCallback 的序列化问题(?)
【发布时间】:2011-01-04 00:38:44
【问题描述】:

我使用 JMS(练习)实现了一个自己的编组/解组系统。我请求并得到回复。在收到正确的响应后,我想触发自己的回调作为响应。但我认为我的例外是序列化问题。但我不知道如何解决它。

我使用该代码调用服务器

button.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            Request request = new Request("printServer:" + printMessage.getText());
            request.setAsyncCallback(new AsyncCallback() {

                /**
                 * 
                 */
                private static final long serialVersionUID = 5204649755139243369L;

                @Override
                public void onSuccess(String content) {
                    System.out.println("async callback: " + content);

                }
            });
            c.callServer(request);

        }
    });

我的请求如下所示:

公共类请求扩展 Conveyable { 私有静态最终长序列版本UID = 4535036450648916878L;

public static int requestIDInc = 0;

private int requestID;

private AsyncCallback callback;

public Request(String content)
{
    super(content);
    synchronized (this) {
        requestID = ++requestIDInc;
    }   
}

public int getRequestID() {
    return requestID;


}

public AsyncCallback getAsyncCallback() {
    // TODO Auto-generated method stub
    return callback;
}

public void setAsyncCallback(AsyncCallback callback)
{
    this.callback = callback;
}

}

我自己的回调如下所示:

public abstract class AsyncCallback implements Serializable{
/**
 * 
 */
private static final long serialVersionUID = 4951246599084406476L;

public abstract void onSuccess(String content);

}

我得到的例外是:

javax.jms.MessageFormatException: machines.client.ClientWindow$1
at org.exolab.jms.message.ObjectMessageImpl.setObject(ObjectMessageImpl.java:194)

看起来有点像在这个回调中包含创建请求并使用 buttonClick 触发它的 ClientWindow。但我不知道为什么。或者也许问题不存在。

【问题讨论】:

    标签: java swing serialization callback jms


    【解决方案1】:

    您的 AsyncCallback 子类被创建为 ClientWindow 内的内部类。非静态内部类包含对父类的引用。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-20
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多