![](/img/trans.png)
[英]I get a stackOverflowError when trying to generate a very large PDF file in Java
[英]Java 6 - StackOverflowError when trying to copy and paste a file
Java 6
jboss-as-7.1.1.Final
我需要复制并粘贴文件。 使用org.apache.commons.io.FileUtils,我尝试了以下代码,
如果我从jsp调用sync()
,
... org.apache.catalina.core.ApplicationHttpRequest.removeAttribute(ApplicationHttpRequest.java:280)的java.lang.StackOverflowError [org.apache.catalina.core.ApplicationHttpRequest的[jbossweb-7.0.13.Final.jar:]。 org.apache.catalina.core.ApplicationHttpRequest.removeAttribute(ApplicationHttpRequest.java:280)上的removeAttribute(ApplicationHttpRequest.java:280)[jbossweb-7.0.13.Final.jar:] [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();
}
}
如果我运行的代码与独立的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应用程序相同的代码成功运行时,为什么会出现StackOverflowError? 谢谢。
我猜想是因为您要将文件复制到具有要复制文件的程序的WAR中,所以它将同步。 然后将文件复制到正在复制文件的WAR中,然后进行同步。 然后将文件复制到正在复制文件的WAR中,然后进行同步...。
JBoss足够聪明,可以尝试通过自动重新部署来重新加载WAR文件中更改的代码。 当您作为独立的Java应用程序运行时,没有容器,因此不会重新部署。
我找到了解决此问题的方法。 我的框架(内部构建的框架)中的操作类配置不正确,因此导致在循环中调用操作类。 我更新了该设置,从而防止了循环执行操作类。
这样的帖子也指导了我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.