httpinvoke远程调用外部系统方法实例

服务器端部署:

在web.xml中:

<!-- http invoker 发布配置 -->
    <servlet>
<servlet-name>enhttpinvoker</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>  
<param-name>contextConfigLocation </param-name>
<param-value>classpath*:/httpinvoker-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>enhttpinvoker</servlet-name>
<url-pattern>/httpservices/*</url-pattern>
</servlet-mapping>

httpinvoker-servlet.xml中:

<bean name="/httpinvokerOpenSer" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
<property name="service" ref="openFacadeImp"></property>
<property name="serviceInterface">
<value>com.dvte.boss.httpinvoker.custopen.IOpenFacade</value>
</property>
</bean>

其中IOpenFacade是接口类,openFacadeImp对应的是实现类,由spring容器负责创建实例,所以OpenFacadeImp事先要扫描到容器中

IOpenFacade接口如下:

public interface IOpenFacade{
ReturnMsg addUser(User u);
}



客户端的部署:

在applicationContext.xml中:

<bean id="ServletProxy"
     class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">  
     <property name="serviceUrl">  
           <value>http://localhost:8080/dvteboss/httpservices/httpinvokerOpenSer</value>  
       </property>  
       <property name="serviceInterface">  
            <value>com.dvte.boss.httpinvoker.custopen.IOpenFacade</value>  
        </property>  
   </bean>


在客户端调用:

public static void main(String[] args){

ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(
                new String[] {"applicationContext.xml" });
    
        IOpenFacade   of = (IOpenFacade)ctx.getBean("ServletProxy");
        us.addUser(new User("Hook1"));
   }

这样就可以完成一个远程的调用的过程,但前提是这个只使用在spring之间的调用。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值