代码之家  ›  专栏  ›  技术社区  ›  Arunabh

SpringRMI使用注释,只能在客户端进行修改

  •  0
  • Arunabh  · 技术社区  · 6 年前

    我试图用Spring和DoopWrand将应用程序从XML和基于属性文件的配置转换为注释和基于Java的配置。我尝试使用以下客户端代码引用 Spring RMI Remoting Annotation Configuration 在我的应用程序中,但它给出了一个类转换异常。

    @Bean
    public BarService createBarServiceLink() {
        RmiProxyFactoryBean rmiProxyFactoryBean = new RmiProxyFactoryBean();
        rmiProxyFactoryBean.setServiceUrl("rmi://localhost:5000/BarService");
        rmiProxyFactoryBean.setServiceInterface(BarService.class);
        rmiProxyFactoryBean.afterPropertiesSet();
        return (BarService) rmiProxyFactoryBean.getObject();
    }
    

    旧应用程序的barservice类没有扩展任何其他类,整个配置是在xmls中完成的,但它仍然可以工作。

    我不能在服务端进行更改,因为它是一个不同的系统,只能在客户端进行更改。 这是可行的吗?如何在不接触服务侧的情况下完成此操作(其他系统代码)。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Aristofanio Garcia    6 年前

    https://www.baeldung.com/spring-remoting-rmi 您的报税表必须是:

    @Bean
    public RmiProxyFactoryBean createBarServiceLink() {
        RmiProxyFactoryBean rmiProxyFactoryBean = new RmiProxyFactoryBean();
        rmiProxyFactoryBean.setServiceUrl("rmi://localhost:5000/BarService");
        rmiProxyFactoryBean.setServiceInterface(BarService.class);
        rmiProxyFactoryBean.afterPropertiesSet();
        return rmiProxyFactoryBean;
    }
    

    在getbean()上,弹簧称为call barservice。例如:

    public static void main(String[] args) throws BookingException {
        BarService service = SpringApplication
          .run(RmiClient.class, args).getBean(BarService.class);
        // use service
    }
    

    这样,您就不会在服务器端或客户机端进行更改。