Spring RMI:如何在没有App服务器或servlet容器的情况下公开?

时间:2011-06-17 16:50:44

标签: spring spring-remoting

我有很多服务,我通过Spring在RMI上公开过。目前,我的应用程序配置为Web应用程序,我将我的应用程序部署到JBoss,以使我的RMI服务可用。有没有办法让我可以运行我的RMI公开服务而不必将我的应用程序变成Web应用程序?

1 个答案:

答案 0 :(得分:3)

是的,只需在'普通'(读取:非webapp)应用程序中实例化您的Spring应用程序上下文,并为其定义您的服务和导出器:

<bean id="myService" class="my.example.MyServiceImpl">
    <!-- properties -->
</bean>

<bean class="org.springframework.remoting.rmi.RmiServiceExporter">
    <!-- does not necessarily have to be the same name as the bean to be exported -->
    <property name="serviceName" value="myRMIService"/>
    <property name="service" ref="myService"/>
    <property name="serviceInterface" value="my.example.MyService"/>
    <!-- defaults to 1099 -->
    <property name="registryPort" value="1199"/>
</bean

这样您的服务就可以在rmi://HOST:1199/myRMIService处获得。

阅读有关RMI here的完整文档。如果您不熟悉如何实例化Spring上下文,请阅读here