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?

¿Fue útil?

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
scroll top