阿里dubbo工程的搭建
来源:互联网 发布:海珠区淘宝美工培训 编辑:程序博客网 时间:2024/05/17 17:58
由于对spring不是很熟悉,在搭建dubbo时折腾了一段时间。故在此将搭建过程分享一下,互相学习。
一下主要是在搭建过程中遇到的问题。
首先构建provider的maven工程。在pom.xml中,添加以下内容
1.dependencies
<dependency><!-- spring依赖包 --><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>3.2.5.RELEASE</version></dependency><dependency><!-- 阿里的dubbo的依赖包 --><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>2.4.9</version></dependency><dependency><!-- zookeeper依赖包 --><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.3.3</version><exclusions><exclusion><groupId>com.sun.jmx</groupId><artifactId>jmxri</artifactId></exclusion><exclusion><groupId>com.sun.jdmk</groupId><artifactId>jmxtools</artifactId></exclusion><exclusion><groupId>javax.jms</groupId><artifactId>jms</artifactId></exclusion></exclusions></dependency><dependency><!-- zookeeper客户端调用的包 --><groupId>com.github.sgroschupf</groupId><artifactId>zkclient</artifactId><version>0.1</version></dependency><dependency><groupId>com.netflix.curator</groupId><artifactId>curator-framework</artifactId><version>1.1.16</version></dependency>
2.maven打包的内容
<build><!-- maven打包 --><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>2.4</version><configuration><archive><manifest><addClasspath>true</addClasspath><mainClass>zju.cs.lzm.main.Main</mainClass><!-- 外接调用主类的路径 --><classpathPrefix>lib/</classpathPrefix></manifest></archive></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><version>2.5.1</version><executions><execution><id>copy-dependencies</id><phase>package</phase><goals><goal>copy-dependencies</goal></goals><configuration><outputDirectory>${project.build.directory}/lib/</outputDirectory></configuration></execution></executions></plugin></plugins></build>
将pom.xml构建完毕后,需要在工程的resources目录下创建provider.xml文件,作为spring的配置文件。
具体内容在其他的很多教程页面里都有,这里不再赘述。下面是几个注意事项:
1.在provider.xml文件中,会出现阿里的schema无法获得的错误。如:
Multiple annotations found at this line:- cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'dubbo:application'.- schema_reference.4: Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.这时,可以在Eclipse中,打开window->preferences->validation,将其中的与XML相关的项设置为未选中。
2.在进行打包提交时,最好使用maven进行打包,上面已经提供了maven打包的代码内容。然后将lib目录也要拷贝到和执行的jar相同的目录下。如果使用fatjar进行打包的话,可能会出现xml不匹配的异常。
3.如果在这个过程中,工程内部是没有错误显示的,但是工程名称上却又红叉,可以在下面的problems栏中,右击每个error,进行quick fix。
4.provider和consumer使用了同一个接口。注意,不仅要这个接口的名称和内容相同,接口的路径也要相同。因为在provider.xml和consumer.xml中,要进行接口暴露的,首先他们俩直接要配对上;同时路径还要符合自己的目录,以允许spring进行依赖注入。
5。两者的application name不要相同,他们均可以在dubbo服务器端的监控中心进行查看。
6.在provider端,若需要调用本地已经实例化了的一个单例对象,则可以这样做
首先,在xml中配置这个单例bean
<!-- 对于singleton模式,则加载spring配置文件的时候就进行了bean的初始化。而对于prototype模式,则是在进行getBean()方法时才进行实例化 --><bean id="IPTransformer" class="zju.cs.lzm.avltree.IPTransformer" scope="singleton"/>然后,
在共同接口的实现类里,创建一个属性,如
private IPTransformer ipt = null;public IPTransformer getIpt() {return ipt;}public void setIpt(IPTransformer ipt) {this.ipt = ipt;}
需要同时设置getset方法。
然后,在xml中进行配置
<!-- 和本地bean一样实现服务。使用实现类,但是id是接口的名称 --><bean id="IPLibrary" class="zju.cs.lzm.main.IPLibraryImpl" ><property name="ipt" ref="IPTransformer"></property><!-- 为这个类依赖注入一个IPTransformer类型的名称为ipt的对象 --></bean>
则,这样会在spring对象创建的时候,自动创建IPTransformer的一个单例对象,然后将这个单例对象以ipt为名称被注入到类IPLibrary中。就可以在IPLibrary中进行调用了。
0 0
- 阿里dubbo工程的搭建
- 阿里dubbo框架使用系列:开发环境搭建之dubbo控制台的安装
- 使用dubbo与zookeeper搭建面向服务的架构工程
- dubbo起步搭建Spring+SpringMVC+dubbo的开发环境(2,provider工程构建)
- dubbo起步搭建Spring+SpringMVC+dubbo的开发环境(3,消费者consumer工程构建)
- dubbo起步搭建Spring+SpringMVC+dubbo的开发环境(5,提供者 工程修改)
- dubbo起步搭建Spring+SpringMVC+dubbo的开发环境(4,提供者 消费者工程启动调试)重要
- 使用代码生成器快速搭建起一个可用的 Dubbo provider 工程
- 【Dubbo分布式服务框架】5.传统测试工程的搭建1
- dubbo+zookeeper+dubbo-admin环境的搭建
- dubbo.xsd的约束文件阿里dubbo分布式框架
- 阿里Dubbo的架构通信方式
- SpringMVC集成阿里的dubbo框架
- dubbo的初级例子搭建
- dubbo-admin管理中心的搭建
- dubbo服务的搭建过程
- Dubbo+Zookeeper+Spring的demo(本地工程+web工程)
- dubbo搭建
- 多元线性回归模型中多重共线性问题处理方法
- 第12周项目3汉诺塔--移动步骤(递归函数)
- 题目1026:又一版 A+B
- HTML5高级编程之图形扭曲及其应用一(原理篇)
- Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析
- 阿里dubbo工程的搭建
- XMLHttpRequest是什么、怎样完整地执行一次GET请求、怎样检测错误。
- VSFTP增加用户并只能访问指定目录
- libvlc_media_add_option 函数中的参数设置
- android linker 浅析
- 9个点画10条直线,要求每条直线上至少3个点
- 【OC】成员变量
- 感悟-十月学习生活
- 216 Web 安全色 开发中常用安全色