Java 6-尝试复制和粘贴文件时出现StackOverflower错误
Java6Java 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
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();
}
}