我正在尝试使用Spring和Dropwizard将应用程序从基于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类,没有扩展任何其他类,并且整个配置都在xml中完成,但是仍然可以使用。
我不能在服务端进行更改,因为它是一个不同的系统,只能在客户端进行更改。 这可行吗?在不接触服务端的情况下如何做到这一点(其他系统代码)。
答案 0 :(得分:1)
在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()上,称为调用BarService的弹簧。例如:
public static void main(String[] args) throws BookingException {
BarService service = SpringApplication
.run(RmiClient.class, args).getBean(BarService.class);
// use service
}
通过这种方式,您无需在服务器或客户端进行更改。