:
一:安装软件:
tomcat
Zookeeper
Dubbo+admin
二:工程:
总工程
API
Pom.xml:不用引用任何东西
Provider
Pom.xml:要denpendency API的模块。
provider.xml:向dubbo注册所提供的服务。
Consumer
Pom.xml:要denpendency API的模块。
consumer.xml:向dubbo注册。
Pom.xml:dependency:Spring Dubbo Zookeeper
三:具体步骤:
1. 安装tomcat。这个可以自己在网上找。修改名称为tomcat,放/usr/local/下边。然后启动tomcat(bin/startup.sh)。
2. Zookeeper,
a. 下载(http://mirrors.shuosc.org/apache/zookeeper/),然后修改名称为zookeeper,拷贝到/usr/local/文件夹下。
b. 配置、启动zookeeper,在命令行中,进入/usr/local/zookeeper/conf文件夹,修改zoo_sample.cfg为zoo.cfg,然后返回上个目录,在命令行中执行 bin/zkServer.sh start。
3.
a. 安装Dubbo+admin,用于管理zookeeper,下载(http://dubbo.io/),进入dubbo+admin中,用idea打开pom.xml文件,然后在idea的终端中,打包 mvn install -DskipTests
b. 进入dubbo-admin->targer文件夹下,找到dubbo-admin-2.5.5.war文件,拷贝到/usr/local/tomcat/webapps/文件夹下,然后可以直接在浏览器中访问改地址。
c. 一般地址是http://localhost:8080/dubbo-admin-2.5.5/,用户名密码都是root,root。
http://m.blog.csdn.net/think12/article/details/78162971
详细讲解IntellJ 下Dubbo +zookeeper+springmvc的配置
http://blog.csdn.net/guyang5863637/article/details/62041425
zookeeper已经开启
dubbo-admin安装成功
1、开始搭建一个空maven工程 作为父工程管理其他模块
2、创建子工程 MyController(消费者). MyInterfence. MyService(提供者)
MyController可以使用maven模版, MyInterfence. MyService不使用maven模版
MyInterfence. MyService的maven创建省略,不需要使用模版
3、MyInterfence项目.的java目录下创建包com.start.interfence 创建接口MyInterfence,如下
MyInterfence的简单代码
1 package com.start.interfence; 2 3 public interface MyInterfence { 4 public String helloWorld(); 5 }
4、MyService项目
首先在pom.xml中引入依赖的jar包
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <parent> 6 <artifactId>Demo</artifactId> 7 <groupId>com.parent</groupId> 8 <version>1.0-SNAPSHOT</version> 9 </parent> 10 <modelVersion>4.0.0</modelVersion> 11 12 <artifactId>MyService</artifactId> 13 14 <dependencies> 15 <dependency> 16 <groupId>com.parent</groupId> 17 <artifactId>MyInterfence</artifactId> 18 <version>1.0-SNAPSHOT</version> 19 </dependency> 20 <dependency> 21 <groupId>com.alibaba</groupId> 22 <artifactId>dubbo</artifactId> 23 <version>2.5.3</version> 24 </dependency> 25 <dependency> 26 <groupId>org.javassist</groupId> 27 <artifactId>javassist</artifactId> 28 <version>3.18.2-GA</version> 29 </dependency> 30 <dependency> 31 <groupId>org.apache.zookeeper</groupId> 32 <artifactId>zookeeper</artifactId> 33 <version>3.3.6</version> 34 </dependency> 35 <dependency> 36 <groupId>com.github.sgroschupf</groupId> 37 <artifactId>zkclient</artifactId> 38 <version>0.1</version> 39 </dependency> 40 </dependencies> 41 42 </project>
然后在resources目录下创建provider.xml (Spring的xm l)
1 <?xml version="1.0" encoding="ISO-8859-1"?> 2 3 <beans xmlns="http://www.springframework.org/schema/beans" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xmlns:jee="http://www.springframework.org/schema/jee" 6 xmlns:tx="http://www.springframework.org/schema/tx" 7 xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" 8 xmlns:context="http://www.springframework.org/schema/context" 9 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 10 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd 11 http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd 12 http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd 13 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd" 14 default-lazy-init="false" > 15 16 17 <bean id="myInterfence" class="com.start.service.MyInterfenceImpl"></bean> 18 19 <dubbo:application name="dubbo_provider"></dubbo:application> 20 21 <dubbo:registry address="zookeeper://127.0.0.1:2181" check="false" subscribe="false" ></dubbo:registry> 22 23 24 <dubbo:service interface="com.start.interfence.MyInterfence" ref="myInterfence" /> 25 26 27 28 </beans>
在java目录下创建包com.start.service。 在此包下创建MyInterfence.java 实现MyInterfence接口,MyInterfence.java代码如下
1 package com.start.service; 2 3 import com.start.interfence.MyInterfence; 4 5 public class MyInterfenceImpl implements MyInterfence{ 6 public String helloWorld() { 7 return "Hello 你好"; 8 } 9 }
在java目录的包com.start.service。下创建Provider.java类 用于启动服务 Provider.java代码如下
1 package com.start.service; 2 3 import org.springframework.context.support.ClassPathXmlApplicationContext; 4 5 import java.io.IOException; 6 7 public class Provider { 8 9 public static void main(String[] args){ 10 ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext(new String[]{"provider.xml"}); 11 context.start(); 12 System.out.println("provider 服务开启"); 13 try { 14 System.in.read(); 15 } catch (IOException e) { 16 e.printStackTrace(); 17 } 18 } 19 }
此时,打开网页http://localhost:8080/dubbo-admin-2.5.8/ (dubbo-admin-2.5.8根据你的配置)
5、配置MyController项目,
首先,在resources目录下新建consumer.xml配置文件,配置SpringMVC注解,视图解析器,dubbo。 consumer.xml代码如下
1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <beans xmlns="http://www.springframework.org/schema/beans" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xmlns:p="http://www.springframework.org/schema/p" 6 xmlns:context="http://www.springframework.org/schema/context" 7 xmlns:mvc="http://www.springframework.org/schema/mvc" 8 xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" 9 xsi:schemaLocation="http://www.springframework.org/schema/beans 10 http://www.springframework.org/schema/beans/spring-beans.xsd 11 http://www.springframework.org/schema/mvc 12 http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd 13 http://www.springframework.org/schema/context 14 http://www.springframework.org/schema/context/spring-context.xsd 15 http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> 16 17 <context:component-scan base-package="com.start.controller"/> 18 19 <!-- 配置注解驱动 --> 20 <mvc:annotation-driven/> 21 <mvc:default-servlet-handler/> 22 23 <!-- 视图解析器 --> 24 <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/> 25 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 26 <property name="prefix" value="/WEB-INF/view/"/> 27 <property name="suffix" value=".jsp"/> 28 </bean> 29 30 <dubbo:application name="dubbo_consumer"></dubbo:application> 31 32 <!-- 使用zookeeper注册中心暴露服务地址 --> 33 <dubbo:registry address="zookeeper://127.0.0.1:2181" check="false"></dubbo:registry> 34 35 <!-- 要引用的服务 --> 36 <dubbo:reference interface="com.start.interfence.MyInterfence" id="myInterfence"></dubbo:reference> 37 38 </beans>
然后在web.xml添加配置信息,注意标签的顺序
1 <!DOCTYPE web-app PUBLIC 2 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 3 "http://java.sun.com/dtd/web-app_2_3.dtd" > 4 5 <web-app> 6 <display-name>Archetype Created Web Application</display-name> 7 <filter> 8 <filter-name>encodingFilter</filter-name> 9 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 10 <init-param> 11 <param-name>encoding</param-name> 12 <param-value>UTF-8</param-value> 13 </init-param> 14 </filter> 15 16 <filter-mapping> 17 <filter-name>encodingFilter</filter-name> 18 <url-pattern>/*</url-pattern> 19 </filter-mapping> 20 <servlet> 21 <servlet-name>dispatcherServlet</servlet-name> 22 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 23 <init-param> 24 <param-name>contextConfigLocation</param-name> 25 <param-value>classpath:consumer.xml</param-value> 26 </init-param> 27 28 <load-on-startup>1</load-on-startup> 29 30 </servlet> 31 32 <servlet-mapping> 33 <servlet-name>dispatcherServlet</servlet-name> 34 <url-pattern>*.do</url-pattern> 35 </servlet-mapping> 36 37 38 39 40 </web-app>
在java目录下新建包com.start.controller 并在此包下新建MyController.java 测试消费者 代码如下
1 package com.start.controller; 2 3 import com.start.interfence.MyInterfence; 4 import org.springframework.beans.factory.annotation.Autowired; 5 import org.springframework.context.support.ClassPathXmlApplicationContext; 6 import org.springframework.stereotype.Controller; 7 import org.springframework.web.bind.annotation.RequestMapping; 8 9 10 @Controller 11 public class MyController { 12 @Autowired 13 private MyInterfence myInterfence; 14 @RequestMapping("/test.do") 15 public String getTest() { 16 System.out.print("11111111111"); 17 String str = myInterfence.helloWorld(); 18 System.out.print(str); 19 return "welcome"; 20 } 21 22 /*public static void main(String[] args){ 23 //ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("consumer.xml"); 24 ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext(new String[]{"consumer.xml"}); 25 context.start(); 26 System.out.println("消费者。。。"); 27 MyInterfence my= (MyInterfence) context.getBean("myInterfence"); 28 my.helloWorld(); 29 }*/ 30 }
在WEB-INF 下建view/welcome.jsp
1 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 <html> 3 <head> 4 <title>welcome China</title> 5 </head> 6 <body> 7 "sssss" 8 </body> 9 </html>
配置Tomcat,点击下图进行Tomcat的配置,点击左上角的➕选择下面的Tomcat Server ,然后选择Local
然后选择右侧的Deployment,点击左下角的➕,选择Artifcat,结果如图3所示
图1
图2
图3
启动Tomcat
此时会报错,显示404 因为在后台开了一个Tomcat了,端口号为8080,开着的目的,主要是打开dubbo的admin页面,查看提供者和消费者的
把端口号换一下,重新运行
打开界面,输入配置的路径,然后输入请求路径,成功
http://localhost:8085/demo/test.do
登录到dubbo的admin页面,发现消费者也出来了
一个简单的小项目就完成了。
注意,在写提供者那一块,Zookeeper的服务就要打开,放那不用管它,Tomcat也可以本地先启动,为的是能够打开dubbo的admin,当然,你在Tomcat本地上先要把dubbo.war包解压后放到webapp目录下,也可以解压替换root文件夹,这样一打开tomcat首页就是dubbo-admin页面,注意后来发布项目的时候,Tomcat的端口号不要再用8080了,容易冲突。
第一次尝试很好的例子