Java跨项目方案:
WebService(CXF| ASIS) 都是基于 soap协议,数据apache的
HttpClient:
Hessian:
Doubbo: 阿里开发的
Spring整合Hissian发布服务:
1. 服务端
导入jar包
- 配置springmvc拦截在web.xml
<servlet>
<servlet-name>remoting</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>remoting</servlet-name>
<url-pattern>/remoting/*</url-pattern>
</servlet-mapping>
** 2. 创建服务端发布服务接口,和实现类
public interface CustomerService {
// 未关联定区客户
public List<Customer> findnoassociationCustomers();
// 查询已经关联指定定区的客户
public List<Customer> findhasassociationCustomers(String decidedZoneId);
// 将未关联定区客户关联到定区上
public void assignCustomersToDecidedZone(Integer[] customerIds, String decidedZoneId);
}
** 3. 在Spring 中配置 发布服务器接口
<!-- 业务类 -->
<bean id="customerService" class="cn.itcast.crm.service.impl.CustomerServiceImpl" />
<!-- 这里指定通过配置的方式发布服务 -->
<!-- 注册hessian服务 -->
<bean id="/customer" class="org.springframework.remoting.caucho.HessianServiceExporter">
<!-- 业务接口实现类 -->
<property name="service" ref="customerService" />
<!-- 业务接口 -->
<property name="serviceInterface" value="cn.itcast.crm.service.CustomerService" />
</bean>
* 4. 启动项目发布服务
2. 客户端
1.、 把服务端接口接口、实体类拷贝到客户端,包名不变
2. 注册服务端接口
<!-- 配置远程服务的代理对象 -->
<bean id="customerService" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
<!-- 注入接口类型 -->
<property name="serviceInterface" value="cn.itcast.crm.service.CustomerService"/>
<!-- 服务访问路径 -->
<property name="serviceUrl" value="http://localhost:8080/crm/remoting/customer"/>
</bean>