2016-09-12 5 views
-1

Java 6
jboss-as-7.1.1.FinalJava 6 - Stackoverflow beim Versuch, eine Datei

ich kopieren müssen kopieren und einzufügen und eine Datei einfügen. Mit org.apache.commons.io.FileUtils und ich mit dem folgenden Code versucht,

Wenn ich sync() aus einer jsp aufrufen, bekommen

... java.lang.StackOverflowError bei org.apache .catalina.core.ApplicationHttpRequest.removeAttribute (ApplicationHttpRequest.java:280) [jbossweb-7.0.13.Final.jar:] bei org.apache.catalina.core.ApplicationHttpRequest.removeAttribute (ApplicationHttpRequest.java:280) [ jbossweb-7.0.13.Final.jar:] um 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(); 
    } 
} 

Wenn ich den gleichen Code wie eine eigenständige Java-Anwendung ausführen, wird die Datei kopiert und eingefügt, um Ziel

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(); 
    } 
} 

Warum erhalte ich den StackOverflowError, wenn der Code in einer JBoss-Umgebung aufgerufen wird, während die Ausführung des gleichen Codes wie die Java-Anwendung erfolgreich ausgeführt wird? Vielen Dank.

+2

Können Sie erklären, warum Sie denken, dass StackOverflowError mit der Dateikopierlogik in Ihrer 'sync()' Methode zu tun hat? (Ich frage, weil es nach dem Bit StackTrace, das du gepostet hast, aussieht, dass es * nicht * ist.) – ruakh

+2

Der Stacktrace zeigt, dass der Fehler an einem völlig anderen Ort ist. Es hat nichts mit der Dateikopie zu tun. – Andreas

+0

@ruakh und Andreas Vielen Dank für Ihre Kommentare, sehen Sie bitte meine Antwort Post. – SyAu

Antwort

0

Ich habe eine Lösung für dieses Problem gefunden. Die Konfiguration der Aktionsklasse in meinem Framework, das ein internes Framework ist, war nicht korrekt, was dazu führte, dass die Aktionsklasse in einer Schleife aufgerufen wurde. Ich habe diese Einstellung aktualisiert und somit die Ausführung von Aktionsklassen in einer Schleife verhindert. Diese SO post führte mich auch.

3

Ich vermute, dass, da Sie Ihre Datei in den WAR kopieren, der das Programm hat, das es kopiert, es dann synchronisiert. Das kopiert dann die Datei in den WAR, der es kopiert, und synchronisiert dann. Das kopiert dann die Datei in den WAR, der es kopiert, und synchronisiert dann ....

JBoss ist intelligent genug, um Code zu versuchen, der in der WAR-Datei geändert wird, indem er automatisch neu verteilt. Wenn Sie als eigenständige Java-Anwendung ausgeführt werden, gibt es keinen Container, sodass er nicht erneut bereitgestellt wird.

+0

Ich habe meine Web-App in einem explodierten Format (Ordner - admin.war), ich habe keine Kriegsdatei im Bereitstellungsordner. – SyAu

Verwandte Themen