zoukankan      html  css  js  c++  java
  • MAC环境下idea:maven+Spring+Dubbo+Zookeeper简单工程搭建

    一:安装软件:
    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了,容易冲突。 
    第一次尝试很好的例子

    本文的源代码https://github.com/wanglecp/Demo.git

  • 相关阅读:
    检测客户端是否安装 Silverlight 插件和判断IE是否安装或支持Silverlight(限IE)
    Silverlight的组合键、快捷键(热键)调用方法
    实现自定义Silverlight版本检测和自定义升级Silverlight运行时方法
    风云的银光志Silverlight4.0系列教程汇总贴
    《银光志—Silverlight 3.0技术详解与最佳实践》创国内最畅销Silverlight技术书籍。
    模拟QQ网络棋牌游戏
    风云的银光志Silverlight4.0教程之轻松操作剪切板
    风云的银光志Silverlight4.0教程之富文本控件RichTextArea(RichTextBox)
    风云的银光志Silverlight4.0教程之使用鼠标右键事件和滚轮事件
    风云的银光志Silverlight4.0教程之WebBrowser(内置浏览器)控件
  • 原文地址:https://www.cnblogs.com/wangleBlogs/p/8059338.html
Copyright © 2011-2022 走看看