Hessian服务搭建
1. web.xml中增加servlet和servlet-mapping:
<!--hessian--> <servlet> <servlet-name>hession</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-config-hession.xml</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet>
<servlet-mapping> <servlet-name>hession</servlet-name> <url-pattern>/hession/*</url-pattern> </servlet-mapping> |
2. 由于DispatcherServlet是spring-mvc包中的类,这里需要加入spring-mvb依赖
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>2.5.6</version> </dependency> |
ps:这里一定要注意版本号,必须跟本项目的spring一个版本,我在搭建过程中曾经使用了3.1.2版本,
结果spring是2.5.6版本,导致很多冲突。
3. 在classpath下加入spring-config-hession.xml配置文件。用于hession服务的定义。
<!--艺人相关服务--> <bean id="artistService" class="com.jd.music.admin.service.forhomepage.impl.ArtistServiceImpl"/>
<bean name="/artistService" class="com.jd.digital.common.util.hession.JdPopHessianServiceExporter"> <property name="service" ref="artistService"/> <property name="serviceInterface" value="com.jd.digital.common.service.music.forhomepage.service.ArtistService"/> <property name="token" value="654321"/> </bean> |
注:1.先声明一个服务的实现bean
2.JdPopHessianServiceExporter 这个类继承了hession的HessianServiceExporter,是京东封装的一个hession处理容器,如下:
public class JdPopHessianServiceExporter extends HessianServiceExporter
3.服务端这样配置就ok了,访问地址为{domain}/servlet-mapping/service
4. 加入hessian依赖
<dependency> <groupId>com.caucho</groupId> <artifactId>hessian</artifactId> <version>3.1.3</version> </dependency> |
5. 客户端配置:定义spring配置文件,spring-config-hession-client.xml,
这里用的域名访问,客户端配host即可。
至此,客户端直接调用artistServiceClient就可以了。