0

我正在尝试RemoteObject从 ActionScript 中使用 GraniteDS 在 Java 服务器端执行简单的方法。但是,我得到了这个例外:

15:43:30,630 DEBUG http-bio-8080-exec-27 webapp.AMFEndpoint:64 - >> Deserializing AMF0 request...
15:43:30,630 ERROR http-bio-8080-exec-27 webapp.AMFEndpoint:91 - AMF message error
java.io.EOFException
    at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:323)
    at org.granite.messaging.amf.io.AMF0Deserializer.readHeaders(AMF0Deserializer.java:94)
    at org.granite.messaging.amf.io.AMF0Deserializer.<init>(AMF0Deserializer.java:76)
    at org.granite.messaging.webapp.AMFEndpoint.service(AMFEndpoint.java:66)
    at org.granite.spring.FlexFilter.handle(FlexFilter.java:245)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669)

等等。这是 ActionScript 部分:

remoteService = new RemoteObject();
remoteService.destination = "targetService";
remoteService.endpoint = "http://192.168.15.19:8080/test/";
remoteService.addEventListener(FaultEvent.FAULT, onRemoteServiceFault);
remoteService.connect.addEventListener(ResultEvent.RESULT, onConnectResult);
remoteService.connect();

我做了一些调试和监控,我可以看到客户端发送的 AMF 消息。而且看起来很正常。但是AMF0Deserializer不能反序列化它。

我发错了吗?还是服务器端应该有错误?

4

1 回答 1

0

实际上,我发现了错误。消息没有任何问题,但在服务器端不应该有 AMFMessageFilter。相反,我使用 AMFMessageServlet - 它序列化/反序列化没有任何问题,并且一切正常。

于 2012-02-24T09:29:11.447 回答