请教 dubbo 使用 http 方式调用的问题

2016-06-16 16:31:07 +08:00
 delavior

有用过 dubbo 的吗?请教个问题。

服务提供者配置文件:

<dubbo:application name="provider" /> 
<dubbo:registry address="zookeeper://127.0.0.1:2181" check="false" /> 
<dubbo:protocol name="http" port="6080" contextpath="consumer/service" server="servlet" /> 
<dubbo:service ref="userService" interface="com.test.interfaces.UserService" timeout="1200000" delay="-1"/> 
<bean id="userService" class="com.test.provider.UserServiceImpl" />

服务提供者 web.xml 文件:

<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>

服务消费者配置文件:

<dubbo:application name="consumer" /> 
<dubbo:registry address="zookeeper://127.0.0.1:2181" check="false" /> 
<dubbo:reference id="userService" interface="com.test.interfaces.UserService" />

dubbo 版本是 2.5.3,spring 版本是 3.1.1,JDK1.6,生产者、消费者都是放到 tomcat6 下的。如果是用 dubbo 客户端这种形式访问的话没有问题,但直接在浏览器访问 http://localhost:6080/consumer/service/com.test.interfaces.UserService 的话,发现走到 dubbo 的 DispatcherServlet 中调用 spring 的 HttpInvokerServiceExporter 处理转发请求时,报 java.io.EOFException

想问一下,能不能用这种非 dubbo 客户端的形式访问;如果能的话,这种报错可能是哪些地方导致的呢? dubbo 的 http 协议到底是怎么用的呢?

10345 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/286205

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX