@Override protected Object invokeMethod(MessageContext mc, Method method, Object trg, Object[] args) throws Exception { PageContext pc = (PageContext) mc.getProperty(Constants.PAGE_CONTEXT); Component c = (Component) mc.getProperty(Constants.COMPONENT); RPCServer server = RPCServer.getInstance(pc.getId(), pc.getServletContext()); TypeMapping tm = server.getEngine().getTypeMappingRegistry().getDefaultTypeMapping(); return AxisCaster.toAxisType(tm, c.call(pc, method.getName(), toRailoType(pc, args)), null); }
private Object call( Component app, PageContext pc, Collection.Key eventName, Object[] args, boolean catchAbort) throws PageException { try { return app.call(pc, eventName, args); } catch (PageException pe) { if (Abort.isSilentAbort(pe)) { if (catchAbort) return Boolean.FALSE; throw pe; } throw new ModernAppListenerException(pe, eventName.getString()); } }