나는 스프링 rmi 웹 애플리케이션 (WAR 파일)을 클라우드에 성공적으로 전개했다. 이 응용 프로그램에는 "greetingRmiService"라는 간단한 RMI 서비스가 포함되어 있습니다.이 서비스는 문자열을 반환하고 인사말 메시지를 포함합니다. 내 rmi 서비스를 성공적으로 배포했다고 말하는 서버 로그 부분은 다음과 같습니다.Cloudbees에서 Spring Java RMI 서비스에 외부 액세스
INFO: Pre-instantiating singletons in org.s[email protected]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 응용 프로그램입니다. 다음은 클라이언트의 스프링 구성 빈입니다.
<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를 사용했습니다. 클라우드 서버에 외부 적으로 연결할 때 사용해야하는 올바른 rmi 엔드 포인트입니까?
감사합니다.
당신이 cloudbees에서 그렇게하는 방법을 알고 있나요? –
에 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 –