2012-05-09 2 views
0

RMI 연결을 위해 "테스트"기능을 추가해야합니다 (다른 쪽 서버가 사용 가능/존재하는지 확인). 나는이 수업/콩을 만든 : 나는 2 초 후 "연결 시간 초과"를 기대하지만 그렇게하지 않는 "것은 serviceUrl"에서 "잘못된"URL을 설정Spring 3.0 RmiProxyFactoryBean : 연결 시간 제한을 설정하는 방법?

public class MyRmiClientSocketFactory implements RMIClientSocketFactory { 

private int timeout; 

public void setTimeout(int timeout) { 
    this.timeout = timeout; 
} 

@Override 
public Socket createSocket(String host, int port) throws IOException { 
    final Socket socket = new Socket(); 
    socket.setSoTimeout(timeout); 
      socket.setSoLinger(false, 0); 
      socket.connect(new InetSocketAddress(host, port), timeout); 
    return socket; 
} 

} 

<bean id="myRmiClientSocketFactory" class="org.myapp.MyRmiClientSocketFactory"> 
    <property name="timeout" value="2000"/> 
</bean> 

<bean id="myExecutor" class="org.springframework.remoting.rmi.RmiProxyFactoryBean"> 
    <property name="serviceInterface" value="org.myapp.MyExecutor"/> 
    <property name="serviceUrl" value="rmi://localhost:1099/myExecutor"/> 
<!--  <property name="refreshStubOnConnectFailure" value="true"/> --> 
<!--  <property name="lookupStubOnStartup" value="false"/> --> 
    <property name="registryClientSocketFactory" ref="myRmiClientSocketFactory"/> 
</bean> 

. 어떻게하면 가능할 지 생각해?

답변

1

연결 제한 시간이 아닌 읽기 시간 제한을 설정했습니다. 연결 시간 제한은 connect()를 호출 할 때 발생합니다.

+0

예. createSocket (...) 메소드를 변경 (위)하고 이제는 괜찮습니다. 감사. – Randomize

관련 문제