2016-09-12 4 views
-1

자바 6
jboss-as-7.1.1.Final 내가 복사하여 파일을 붙여 넣기 할 필요가자바 6 - 파일을 복사 및 붙여 넣기하려고 StackOverflowError가

. org.apache.commons.io.FileUtils를 사용하고 난 org.apache에 ... java.lang.StackOverflowError의를

을 받고, 다음 코드

나는 JSP에서 sync()를 호출하면

시도 .catalina.core.ApplicationHttpRequest.removeAttribute (ApplicationHttpRequest.java:280) [jbossweb-7.0.13.Final.jar :] org.apache.catalina.core.ApplicationHttpRequest.removeAttribute (ApplicationHttpRequest.java:280)에서 [ jbossweb-7.0.13.Final.jar :] at org.apache.catalina.core.ApplicationHttpRequest.removeAttribute (ApplicationHttpRequest.java:280) [jbossweb-7.0.13.Final.jar :]
private void sync() { 
    try { 
     FileUtils.copyFile(new File("C:/jboss-as-7.1.1.Final/standalone/deployments/admin.war/xml/news_src/compose.xml"), 
     new File("C:/jboss-as-7.1.1.Final/standalone/deployments/admin.war/xml/news_dest/compose.xml"));    
    } 
    catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

내가 독립형 자바 응용 프로그램과 같은 코드를 실행하면

는 파일 복사 및 대상에 붙여 넣기됩니다

public static void main(String s[]) { 
    try { 
     FileUtils.copyFile(new File("C:/jboss-as-7.1.1.Final/standalone/deployments/admin.war/xml/news_src/compose.xml"), 
     new File("C:/jboss-as-7.1.1.Final/standalone/deployments/admin.war/xml/news_dest/compose.xml"));   
    } 
    catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

왜 JBoss 환경에서 호출 된 코드가 Java 응용 프로그램과 동일한 코드를 실행하는 동안 StackOverflowError가 발생합니까? 감사.

+2

StackOverflowError가'sync()'메소드의 파일 복사 논리와 관련이 있다고 생각하는 이유를 명확히 할 수 있습니까? (나는 stacktrace를 게시 한 것으로 판단하여 * 보이지 않기 때문에 묻습니다.) – ruakh

+2

stacktrace는 오류가 완전히 다른 장소에 있음을 보여주기 때문에 묻습니다. 파일 복사와 관련이 없습니다. – Andreas

+0

@ruakh and Andreas 의견을 보내 주셔서 감사합니다. 내 답변 게시글을 참조하십시오. – SyAu

답변

0

이 문제에 대한 해결책을 발견했습니다. 내장 프레임 워크 인 내 프레임 워크의 작업 클래스 구성이 올바르지 않아서 액션 클래스가 루프에서 호출됩니다. 이 설정을 업데이트하여 루프에서 액션 클래스 실행을 방지했습니다.

SO post도 나를 안내했습니다.

3

파일을 복사하는 프로그램이있는 WAR에 파일을 복사하고 있기 때문에 추측하겠습니다. 그러면 동기화됩니다. 그런 다음 파일을 복사중인 WAR에 복사 한 다음 동기화합니다. 그런 다음 파일을 복사중인 WAR에 복사 한 다음 동기화합니다.

JBoss는 자동으로 재배포하여 WAR 파일에서 변경된 코드를 다시로드하려고하면 현명합니다. 독립 실행 형 Java 응용 프로그램으로 실행 중일 때는 컨테이너가 없기 때문에 재배포하지 않습니다.

+0

웹 응용 프로그램을 분해 된 형식 (폴더 - admin.war)으로 보유하고 있으며 배치 폴더 아래에 war 파일이 없습니다. – SyAu

관련 문제