Java 6-尝试复制和粘贴文件时出现StackOverflower错误

Java 6-尝试复制和粘贴文件时出现StackOverflower错误,java,jboss7.x,fileutils,Java,Jboss7.x,Fileutils,Java6 jboss-as-7.1.1.最终版 我需要复制并粘贴一个文件。使用org.apache.commons.io.FileUtils,我尝试了以下代码 如果我从jsp调用sync(),则 。。。java.lang.StackOverflowerr位于 org.apache.catalina.core.ApplicationHttpRequest.removeAttribute(ApplicationHttpRequest.java:280) [jbossweb-7.0.13.Final

Java6
jboss-as-7.1.1.最终版

我需要复制并粘贴一个文件。使用org.apache.commons.io.FileUtils,我尝试了以下代码

如果我从jsp调用
sync()
,则

。。。java.lang.StackOverflowerr位于 org.apache.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:] org.apache.catalina.core.ApplicationHttpRequest.removeAttribute(ApplicationHttpRequest.java:280) [jbossweb-7.0.13.Final.jar:]

如果我运行与独立java应用程序相同的代码,文件将被复制并粘贴到目标

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应用程序相同的代码却成功运行时,我会得到StackOverflower错误?谢谢。

我猜,既然您正在将文件复制到包含复制程序的WAR中,那么它就会同步。然后将文件复制到正在复制它的WAR中,然后进行同步。然后将文件复制到正在复制它的WAR中,然后同步


JBoss足够聪明,可以尝试通过自动重新部署来重新加载WAR文件中更改的代码。当您作为独立Java应用程序运行时,没有容器,因此它不会重新部署。

我找到了解决此问题的方法。我的框架中的action类配置是内部构建的框架,它不正确,因此导致在循环中调用action类。我更新了该设置,从而防止了动作类在循环中执行


这也指导了我。

您能澄清一下为什么您认为StackOverflower错误与
sync()
方法中的文件复制逻辑有关吗?(我这样问是因为,从你发布的stacktrace来看,它看起来不是。)stacktrace显示错误在一个完全不同的地方。这与文件副本无关。@ruakh和Andreas感谢您的评论,请参阅我的回复帖子。我的web应用程序是分解格式的(文件夹-admin.war),我在deployments文件夹下没有任何war文件。
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();
    }
}