2013-04-05 1 views
0

10 초에서 1 분 정도 소요될 수있는 정적 Java 클래스에서 메소드를 호출하려고합니다. 약 30 초 후에 예외가 발생합니다.장기 실행 Java 메소드를 호출 할 때 Coldfusion에서 java.net.SocketTimeoutException이 발생합니다.

java.net.SocketTimeoutException: Read timed out; Is the timeout preference too low? Are you dumping/calling debug() on large data or cfc instances? 

다음 최소 예제로 복제 할 수있었습니다. 자바에서는 :

<cffunction name="timeoutTest" access="public" returnType="void" output="false> 
    <cfset sleeper = CreateObject("java", "some.package.Sleeper" /> 
    <cfset runner.sleep(32) /> 
</cffunction> 

도움이되지 않았다 내 Timeout Requests after (seconds) 서버 설정에 99999에 설정,도에 테스트를 변경 않았다 :

<cffunction name="timeoutTest" access="public" returnType="void" output="false> 
    <cfset sleeper = CreateObject("java", "some.package.Sleeper" /> 
    <cfsetting requesttimeout="64" /> 
    <cfset runner.sleep(32) /> 
</cffunction> 
다음

package some.package; 
public class Sleeper { 
    public static void sleep(int seconds) { 
     Thread.sleep(seconds * 1000); 
    } 
} 

그리고 나는 MxUnit 테스트를

어딘가에 설정이 있다고 상상하지만, 그렇다면 찾을 수 없습니다. ColdFusion 8을 실행하고 있습니다.

답변

1

ColdFusion이 문제가되지 않았습니다. MxUnit이 문제였습니다. 기본적으로 장치 테스트는 30 초 후 시간 초과됩니다. 이것은 Eclipse에서 Preferences> MXUnit으로 이동하여 "Method Timeout"필드를 0으로 변경하여 변경할 수 있습니다.

관련 문제