Ошибка в GraniteDS при десериализации RemoteObject - PullRequest
0 голосов
/ 22 февраля 2012

Я пытаюсь использовать RemoteObject из ActionScript для выполнения простого метода на стороне Java-сервера с использованием GraniteDS. Однако я получаю это исключение:

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 не может десериализовать его.

Я отправляю это неправильно? Или должна быть ошибка на стороне сервера?

1 Ответ

0 голосов
/ 24 февраля 2012

На самом деле я обнаружил ошибку.В сообщениях нет ничего плохого, но на стороне сервера не должно быть AMFMessageFilter.Вместо этого я использую AMFMessageServlet - он сериализует / десериализует без проблем, и все прекрасно работает.

...