1. 程式人生 > >Spring不使用zk,直接呼叫dubbo介面方法

Spring不使用zk,直接呼叫dubbo介面方法

1、配置檔案spring-dubbo-consumer.xml

<?xml version="1.1" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans    
       http://www.springframework.org/schema/beans/spring-beans.xsd    
       http://code.alibabatech.com/schema/dubbo    
       http://code.alibabatech.com/schema/dubbo/dubbo.xsd">  
         
    <dubbo:application name="test" />
      
    <dubbo:reference id="demoService" timeout="3000" version="1.0.0" generic="true"  interface="txt/com.DemoService" url="dubbo://127.0.0.1:20880"/>   
</beans>   

2、TestDemo.java

package com;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.alibaba.dubbo.common.json.JSONObject;
import com.alibaba.dubbo.rpc.service.GenericService;

public class TestDemo {
     public static void main(String[] args) throws InterruptedException {  
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(  
                    "spring-dubbo-consumer.xml");  
            context.start();  
           
            GenericService genericService = (GenericService) context.getBean("demoService");
            Object result = genericService.$invoke(
                    "queryUser", new String[] {
                            "java.lang.String"}, new Object[] { "10100000006340001" });
            System.out.println(com.alibaba.fastjson.JSONObject.toJSONString(result));
            context.close();
        } 
}

注意配置的介面名稱和provider裡面的保持一致即可,如果不一致會報錯,按照錯誤資訊修改即可,如這裡的demo在前面加了txt/