package com.maartenvolders.samples.gwt.inlinepreserializedpayload.server; import com.google.gwt.user.client.rpc.SerializationException; import com.google.gwt.user.server.rpc.RPC; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.velocity.context.Context; import org.apache.velocity.tools.view.VelocityViewServlet; import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Method; /** * Author: maarten@maartenvolders.com */ public class DemoVelocityViewServlet extends VelocityViewServlet { private final Log log = LogFactory.getLog("DemoVelocityViewServlet"); private static final String PAYLOAD_METHOD = "getSystemInfo"; private static final String PAYLOAD_ID = "payload"; @Override protected void fillContext(Context context, HttpServletRequest request) { try { Method method = DemoServiceImpl.class.getMethod(PAYLOAD_METHOD); String result = new DemoServiceImpl().getSystemInfo(); String payload = RPC.encodeResponseForSuccess(method, result); context.put(PAYLOAD_ID, payload); log.info("Preserialized payload added to context: " + payload); } catch (NoSuchMethodException nsme) { log.error("Payload preserialization failed", nsme); } catch (SerializationException se) { log.error("Payload preserialization failed", se); } } }