Error en GraniteDS al deserializar RemoteObject
-
29-10-2019 - |
Pregunta
Estoy tratando de usar RemoteObject
de ActionScript para ejecutar un método simple en el lado del servidor Java usando GraniteDS.Sin embargo, recibo esta excepción:
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)
Y así sucesivamente.Aquí está la parte de 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();
Hice un poco de depuración y supervisión, y pude ver el mensaje AMF que envió el cliente.Y se veía normalmente.Sin embargo, AMF0Deserializer
no puede deserializarlo.
¿Lo estoy enviando mal?¿O debería haber un error en el lado del servidor?
Solución
De hecho, encontré el error.No hay nada de malo en los mensajes, pero en el lado del servidor no debería haber AMFMessageFilter.En su lugar, uso AMFMessageServlet: serializa / deserializa sin ningún problema y todo funciona muy bien.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow