Hello World

        看着自己的园龄才知道都在这里这么久了,可是一直没发过一篇博文,评论和回复也几乎可以忽略。在这里收藏了好多博文,默默的学习,十分感谢这个平台。工作也有段时间了,开始觉得什么都知道点,什么都不会,不知道有没有这种感觉的人。

        程序员的开始都是Hello World,今天在这发一篇Hello World,开始用博客记录学习和工作中的点点滴滴,于自己是种积累,也希望认识更多的朋友,即使我的文笔和技术都很烂。絮絮叨叨这么多废话,根本不是程序员的风格,第一篇Hello World也不例外,先来记录下最近工作中的一个问题,利用dubbo传输图片,第一个想到的肯定是流化,对于dubbo也不是很熟悉,就按普通的方式来传了,可是根本接收不到什么鬼。官网去转一下吧,给出的方案是利用hessian。下面就把主要的配置说下。

web.xml

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>dubbo</servlet-name>
        <servlet-class>com.alibaba.dubbo.remoting.http.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dubbo</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

Provider dubbo配置

    <!-- 提供方应用信息,用于计算依赖关系 -->
    <dubbo:application name="dubbo_demo_provider" />

    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" />

    <!-- 用dubbo协议在20880端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="20880" />
    <!-- contextpath 使用的是项目名称 --> 
    <dubbo:protocol name="hessian" port="8080" contextpath="dubbo" server="servlet"/>

    <!-- 声明需要暴露的服务接口 -->
    <dubbo:service interface="com.unj.dubbotest.provider.InputStremTest" ref="inputStremTest" protocol="hessian"/>

Consumer dubbo配置

    <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
    <dubbo:application name="dubbo_demo_consumer" />

    <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" />

    <dubbo:reference id="inputStremTest"
                     interface="com.unj.dubbotest.provider.InputStremTest" protocol="hessian" />

 

其实这个问题解决的过程还是有很多的点的,jar包冲突,hessioan报的奇奇怪的问题。另外还有个想说就是利用dubbo传InputStrem,我的建议是把流转换成字节数组,字节数组,字节数组,重要的事情说三遍。

具体的代码就不在这里罗列了,作为一个有开源精神和责任心的程序员公司的代码没法提供出来,自己的demo还是可以的眨眼,博客园的上传没明白,奉上百度云的地址http://pan.baidu.com/s/1qYiT4mg,关于这个有问题可以随时联系我。

 

后记:随让当时把这个问题顺利解决了,但是当开始全面联调时候发现普通的接口,时通时不通,报未检测到的错误,把原因打印出来后发现是“java-io-ioexception-premature-eof”,解决了好一阵,我承认这个问题我被百度误导了,居然没去看服务管理中心,一个服务同时挂在了hessian和zk的端口,发现后指定协议搞定。。。。

posted @ 2016-04-23 12:44  重名  阅读(498)  评论(0编辑  收藏  举报