• Spring Http Invoker


    配置例如以下:

    ①web.xml配置

        <servlet>  
      
            <servlet-name>remote</servlet-name>  
      
           <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
      
            <!-- 配置该Servlet随应用启动时候启动 -->  
      
            <load-on-startup>1</load-on-startup>  
      
        </servlet>  
      
    	<!-- 配置DispatcherServlet映射的url -->  
     
        <servlet-mapping>  
      
           <servlet-name>remote</servlet-name>  
      
           <url-pattern>/remoting/*</url-pattern>  
      
        </servlet-mapping>  

    ②client.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans default-lazy-init="true">
    <bean id="sync.BackupSearchService" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
    		<property name="serviceUrl" value="http://${juyuan.webservice.address}:${juyuan.webservice.port}/${juyuan.webservice.application}/remoting/backupSearchService"/>
    		<property name="serviceInterface" value="com.juyuan.service.IBackupSearchService"/>
    </bean>
     
    
    </beans>


    ③remote.xml

    <?xml version="1.0" encoding="UTF-8"?

    > <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter" name="/backupSearchService"> <property name="service" ref="BackupSearchService"/> <property name="serviceInterface" value="com.juyuan.service.IBackupSearchService"/> </bean> <bean class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter" name="/backupStrategyService"> <property name="service" ref="BackupStrategyService"/> <property name="serviceInterface" value="com.juyuan.service.IBackupStrategyService"/> </bean> </beans>



    ④SyncService

    package com.juyuan.service.impl;
    
    import java.lang.reflect.Method;
    import java.util.Date;
    import com.juyuan.model.Alarms;
    import com.juyuan.model.AlarmsKeys;
    import com.juyuan.model.Logs;
    import com.juyuan.model.LogsKeys;
    import com.juyuan.service.IAlarmsService;
    import com.juyuan.service.ILogsService;
    import com.juyuan.support.AppCommon;
    import com.juyuan.support.AppContext;
    
    /**
     * add by LB 已屏蔽.若要开启同步请去掉execute里凝视的代码.
     * @author LB
     *
     */
    public class SyncService implements Runnable{
    	
    	
    	private Method method = null;
    	private Object serviceObj = null;
    	private Object[] paramArray = null;
    	/**
    	 * 同步数据通用类
    	 * @param serviceObj	服务对象.
    	 * @param methodName	待调用的服务方法.
    	 * @param paramTypes	參数的类类型数组.
    	 * @param paramArray	參数数组.(必须可以序列化)
    	 */
    	public SyncService(Object serviceObj,String methodName,Class<Object>[] paramTypes,Object[] paramArray){
    		try {
    			this.serviceObj = serviceObj;
    			this.paramArray = paramArray;
    			method = serviceObj.getClass().getMethod(methodName, paramTypes );
    		}  catch (Exception e) {
    			
    		}
    		
    	}
    	
    	public void run() {
    		try {
    			method.invoke(serviceObj,paramArray);
    		} catch (Exception e) {
    			e.printStackTrace();
    			
    		}
    	}
    	/**
    	 * 运行同步
    	 */
    	public void execute(){
    		
    		new Thread(this).start();
    	}
    }
    


    ⑤调用方式:

    new SyncService(this.getSyncConditionService(),"saveSearchCondition",new Class[]{DefaultSearchCondition.class},new Object[]{entity}).execute();






  • 相关阅读:
    植物大战僵尸英文原版
    2020-5-13递归练习 六人参加竞赛
    2020-5-1递归练习
    java当脚本用。QQ表白轰炸机
    面向实战---VUE项目的文件加载顺序,或者加载流程,以及index.html,main.js,app.vue的区别
    CSS多个view随机分布,不重叠,如何实现呢?
    vite项目才踩坑日志1
    css属性之clip-path
    纯CSS3实现的阳光海鸥沙滩遮阳伞和比基尼美女风景动画效果源码
    TP5 中使用wherein 进行查询,太慢了,怎么优化?
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5227023.html
Copyright © 2020-2023  润新知