发表于: 2016-05-13 16:31:38

1 1842


【操作步骤】
1.初步测试RMI服务成功,目前总结出这么几点需要注意的地方:
    1.1 service端和client端都需要放进去jar包,我刚开始以为client端不用jar包,一切处理都交给service端就好了。但是二者的jar包能不能不相同,我没有测试过,可能是需要哪个包就导入哪个包吧。
    1.2 service端和client端可以看成是两个程序,只不过一个程序远程调用了另一个程序的方法罢了。
    1.3 启动过程是这样的:我先用tomcat启动service端(端口号设为9080),再用jetty启动client端(端口号设置为8080)。
    1.4 我刚开始以为RmiServiceExporter类只能用一次,一个项目所有的服务都需要配置在一个RmiServiceExporter类下面,其实不是,一个服务配置一个RmiServiceExporter类。
    1.5 看网上的文章,基本上都会在服务端写一个main方法,然后在这个main方法中调用函数:
        new ClassPathXmlApplicationContext("org/shirdrn/spring/remote/rmi/server.xml");
        通过调用这个函数来启动RMI服务。我在Spring中配置好了server.xml文件后,把这个文件import到applicationContext.xml中,这样在启动服务端程序后,就直接把server.xml文件加载了,不用再写一个main函数。

2.目前的工作:我把所有的dao、models、util都放到service端,把jsp页面和controller类放到client端,把util类中所有要用到的方法都做好接口放到client端。


【知识总结】



【出现的问题(已解决)】




【出现的问题(未解决)】
1.相比较之下,客户端要获取bean,方法要困难一点,使用下面两个函数才能得到:
    ApplicationContext ctx = new ClassPathXmlApplicationContext("rmiClient.xml");  
    ClassesService classesService = (ClassesService) ctx.getBean("classesService");  
  我尝试过使用注解的方式得到bean,但是失败了。那么这样写起来就挺麻烦的。我疑惑的是我明明已经在applicationContext.xml文件中引入rmiClient.xml了,这样在项目启动时应该就会自动加载rmiClient.xml进去,我为什么不能直接写一个ClassesService classesService 就得到这个类,而只能通过写那么长的两个函数式来得到这个bean?

【疑问】



返回列表 返回列表
评论

    分享到