0

spring rmi Web アプリケーション (WAR ファイル) を cloudbees に正常にデプロイしました。このアプリケーションには、あいさつメッセージを含む文字列を返す「greetingRmiService」という単純な RMI サービスが含まれています。これは、rmi サービスが正常にデプロイされたことを示すサーバー ログの部分です。

INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@79d9cd24: defining beans [registry,greetingService,org.springframework.remoting.rmi.RmiServiceExporter#0]; root of factory hierarchy
May 02, 2013 4:06:20 AM org.springframework.remoting.rmi.RmiRegistryFactoryBean getRegistry
INFO: Looking for RMI registry at port '1099'
May 02, 2013 4:06:35 AM org.springframework.remoting.rmi.RmiRegistryFactoryBean getRegistry
INFO: Could not detect RMI registry - creating new one
May 02, 2013 4:06:35 AM org.springframework.remoting.rmi.RmiServiceExporter prepare
INFO: Binding service 'greetingRmiService' to RMI registry: RegistryImpl[UnicastServerRef [liveRef: [endpoint:[10.119.1.56:1099](local),objID:[0:0:0, 0]]]]

ここで、ローカル PC にクライアント アプリを作成して、このサービスに接続し、そのサービスを呼び出したいと考えています。私のクライアントは単純な Maven アプリケーションです。クライアントのSpring構成Beanは次のとおりです。

<bean id="greetingService" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
<property name="serviceUrl" value="rmi://10.119.1.56:1099/greetingRmiService"/>
<property name="serviceInterface" value="com.main.GreetingService"/>
</bean>

クライアントの主な方法:

public static void main( String[] args )
{

ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:com/config/SpringConfigurationBean.xml");
GreetingService service = (GreetingService) ctx.getBean("greetingService");
System.out.println(service.sayHello("Lahiru"));
}

しかし、これは機能せず、接続タイムアウトの例外が発生します。エンドポイント 10.119.1.56:1099 を使用してサーバーに接続しました。外部から cloudbees サーバーに接続するときに使用する正しい rmi エンドポイントはありますか?

ありがとう!

4

1 に答える 1

1

RMI が正しく機能するためには、http(s) をトンネリングして、プロキシ/ルーティング レイヤーを経由する必要があります。

トンネリングについて詳しく読むことができます:

http://www.java-forums.org/blogs/rmi/730-what-http-tunneling-how-make-rmi-calls-across-firewalls.html

春のアプリケーションの場合: http://static.springsource.org/spring-integration/docs/2.0.0.RELEASE/reference/html/httpinvoker.html

于 2013-05-06T07:04:35.370 に答える