springremoteinvokercomponent.java
来自「提供ESB 应用mule源代码 提供ESB 应用mule源代码」· Java 代码 · 共 160 行
JAVA
160 行
/* * $Id: SpringRemoteInvokerComponent.java 11964 2008-06-05 19:31:23Z dfeist $ * -------------------------------------------------------------------------------------- * Copyright (c) MuleSource, Inc. All rights reserved. http://www.mulesource.com * * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */package org.mule.module.spring.remoting;import org.mule.api.MuleEventContext;import org.mule.api.lifecycle.Callable;import org.mule.api.lifecycle.Initialisable;import org.mule.api.lifecycle.InitialisationException;import org.mule.config.i18n.CoreMessages;import org.mule.util.ClassUtils;import org.springframework.beans.factory.InitializingBean;import org.springframework.remoting.support.RemoteInvocation;import org.springframework.remoting.support.RemoteInvocationBasedExporter;import org.springframework.remoting.support.RemoteInvocationExecutor;import org.springframework.remoting.support.RemoteInvocationResult;public class SpringRemoteInvokerComponent implements Initialisable, Callable{ private Delegate delegate; private Class serviceClass; private Class serviceInterface; private Object serviceBean; private boolean registerTraceInterceptor = false; private RemoteInvocationExecutor remoteInvocationExecutor; private class Delegate extends RemoteInvocationBasedExporter implements InitializingBean { private Object proxy; public void afterPropertiesSet() { this.proxy = getProxyForService(); } public Object execute(RemoteInvocation invocation) { try { Object value = invoke(invocation, proxy); return value; } catch (Throwable ex) { ex.printStackTrace(); return new RemoteInvocationResult(ex); } } } public SpringRemoteInvokerComponent() { delegate = new Delegate(); } public void initialise() throws InitialisationException { if (serviceClass == null && serviceBean == null) { throw new InitialisationException(CoreMessages.propertiesNotSet("serviceClass or serviceBean"), this); } if (serviceInterface == null) { throw new InitialisationException(CoreMessages.propertiesNotSet("serviceInterface"), this); } if (serviceClass != null) { Object service = null; try { service = ClassUtils.instanciateClass(serviceClass, null); } catch (Exception e) { throw new InitialisationException(e, this); } delegate.setService(service); } else if (serviceBean != null) { delegate.setService(serviceBean); } delegate.setServiceInterface(serviceInterface); delegate.setRegisterTraceInterceptor(registerTraceInterceptor); if (remoteInvocationExecutor != null) { delegate.setRemoteInvocationExecutor(remoteInvocationExecutor); } delegate.afterPropertiesSet(); } public Class getServiceClass() { return serviceClass; } public void setServiceClass(Class serviceClass) { this.serviceClass = serviceClass; } public Object getServiceBean() { return serviceBean; } public void setServiceBean(Object serviceBean) { this.serviceBean = serviceBean; } public Class getServiceInterface() { return serviceInterface; } public void setServiceInterface(Class serviceInterface) { this.serviceInterface = serviceInterface; } public boolean isRegisterTraceInterceptor() { return registerTraceInterceptor; } public void setRegisterTraceInterceptor(boolean registerTraceInterceptor) { this.registerTraceInterceptor = registerTraceInterceptor; } public RemoteInvocationExecutor getRemoteInvocationExecutor() { return remoteInvocationExecutor; } public void setRemoteInvocationExecutor(RemoteInvocationExecutor remoteInvocationExecutor) { this.remoteInvocationExecutor = remoteInvocationExecutor; } public Object onCall(MuleEventContext eventContext) throws Exception { Object transformedMessage = eventContext.transformMessage(); RemoteInvocation ri = (RemoteInvocation) transformedMessage; Object rval = delegate.execute(ri); return rval; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?