HttpInvoker远程调用实例

一、服务器端:

1、服务接口与实现类






Java代码

   1. package org.eesite.bbs.remote; 
   2.  
   3.  
   4.  
   5. public interface IRemoteService { 
   6.  
   7.     public String getString(String msg); 
   8.  
   9. } 
  10.  
  11.   
  12.  
  13. package org.eesite.bbs.remote; 
  14.  
  15.  
  16.  
  17. public class RemoteServiceImpl implements IRemoteService { 
  18.  
  19.     public String getString(String msg) { 
  20.  
  21.        String str = "正在请求调用...远程服务调用成功! " + msg; 
  22.  
  23.        return str; 
  24.  
  25.     } 
  26.  
  27. } 

package org.eesite.bbs.remote;

public interface IRemoteService {
    public String getString(String msg);
}

package org.eesite.bbs.remote;

public class RemoteServiceImpl implements IRemoteService {
    public String getString(String msg) {
       String str = "正在请求调用...远程服务调用成功! " + msg;
       return str;
    }
}

 



2、服务暴露配置remote-servlet.xml


Xml代码

   1. <?xml version="1.0" encoding="UTF-8"?> 
   2.  
   3. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 
   4.  
   5. <beans> 
   6.  
   7.     <!-- 通过Spring HttpInvoker机制暴露远程访问服务 --> 
   8.  
   9.     <bean id="rmiService" 
  10.  
  11.        class="org.eesite.bbs.remote.RemoteServiceImpl" /> 
  12.  
  13.   
  14.  
  15.     <bean name="/remoteService" 
  16.  
  17. class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter"> 
  18.  
  19.        <property name="service" ref="rmiService" /> 
  20.  
  21.        <property name="serviceInterface" 
  22.  
  23.            value="org.eesite.bbs.remote.IRemoteService" /> 
  24.  
  25.     </bean> 
  26.  
  27. </beans> 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <!-- 通过Spring HttpInvoker机制暴露远程访问服务 -->
    <bean id="rmiService"
       class="org.eesite.bbs.remote.RemoteServiceImpl" />

    <bean name="/remoteService"
class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
       <property name="service" ref="rmiService" />
       <property name="serviceInterface"
           value="org.eesite.bbs.remote.IRemoteService" />
    </bean>
</beans>









3、web.xml配置






Xml代码

   1. <!-- 加载服务配置文件 --> 
   2.  
   3. <context-param> 
   4.  
   5.        <param-name>contextConfigLocation</param-name> 
   6.  
   7.        <param-value>/WEB-INF/remote-servlet.xml</param-value> 
   8.  
   9.     </context-param> 
  10.  
  11.   
  12.  
  13. <!-- 配置DispatcherServlet --> 
  14.  
  15.     <servlet> 
  16.  
  17.         <servlet-name>remote</servlet-name> 
  18.  
  19.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
  20.  
  21.         <!-- 配置该Servlet随应用启动时候启动 --> 
  22.  
  23.         <load-on-startup>1</load-on-startup> 
  24.  
  25.     </servlet> 
  26.  
  27. <!-- 配置DispatcherServlet映射的url --> 
  28.  
  29.     <servlet-mapping> 
  30.  
  31.        <servlet-name>remote</servlet-name> 
  32.  
  33.        <url-pattern>/remoting

      public class TestRemote {

      

        

          public static void main(String[] args) {

             ApplicationContext applicationContext = new ClassPathXmlApplicationContext("remote.xml");

             IRemoteService service = (IRemoteService) applicationContext

                    .getBean("remoteService");

             String msg = service.getString("哈哈,我来了!");

             System.out.println(msg);

          }

      }

      

      测试结果:正在请求调用...远程服务调用成功! 哈哈,我来了!

你可能感兴趣的:(spring,应用服务器,xml,servlet,bbs)