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就可以了。