java - 线程 "ajp-bio-8009-exec-1"中的异常

标签 java tomcat printwriter

我遇到了奇怪的错误。我的所有 Java 代码在我的笔记本电脑(Windows 7)上运行没有任何问题,但是当我将它上传到我们的服务器(Linux)时,我在 tomcat 日志中看到以下内容:

Exception in thread "ajp-bio-8009-exec-1" java.lang.StackOverflowError
    at java.lang.System.checkKey(System.java:831)
    at java.lang.System.getProperty(System.java:705)
    at sun.security.action.GetPropertyAction.run(GetPropertyAction.java:84)
    at sun.security.action.GetPropertyAction.run(GetPropertyAction.java:49)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.io.PrintWriter.<init>(PrintWriter.java:116)
    at java.io.PrintWriter.<init>(PrintWriter.java:100)
    at mig.common.src.ErrorCheck.errorMsg(ErrorCheck.java:50)
    at mig.common.src.SendEmail.send(SendEmail.java:71)
    at mig.common.src.ErrorCheck.errorMsg(ErrorCheck.java:54)
    at mig.common.src.SendEmail.send(SendEmail.java:71)
    at mig.common.src.ErrorCheck.errorMsg(ErrorCheck.java:54)
    at mig.common.src.SendEmail.send(SendEmail.java:71)

这是我的 ErrorCheck.errorMsg 代码:

public String errorMsg(String subject, Exception e){    
        String stackTrace = "";                 
        try{
            StringWriter sw = new StringWriter();  
                    PrintWriter pw = new PrintWriter(sw);  
                        e.printStackTrace(pw);
                            stackTrace = sw.toString();          
                        stackTrace = stackTrace.replaceAll("\n","<br>");                        SendEmail.send("myemail@gmail.com","toemail@gmail.com",subject,stackTrace);         
                pw.close();
                pw = null;      
            sw.close();
            sw = null;

            System.gc();

        }catch(Exception ex){
        ex.printStackTrace();
        }           
    return stackTrace;
    }

请指教。

感谢期待

最佳答案

如果您有错误,您的程序似乎会发送一封电子邮件。在这种情况下,您在发送电子邮件时出错,因此您有一个“死循环”。

你可以在这里看到:

at mig.common.src.ErrorCheck.errorMsg(ErrorCheck.java:50)
at mig.common.src.SendEmail.send(SendEmail.java:71)
at mig.common.src.ErrorCheck.errorMsg(ErrorCheck.java:54)
at mig.common.src.SendEmail.send(SendEmail.java:71)
at mig.common.src.ErrorCheck.errorMsg(ErrorCheck.java:54)
at mig.common.src.SendEmail.send(SendEmail.java:71)

最后你得到一个java.lang.StackOverflowError

关于java - 线程 "ajp-bio-8009-exec-1"中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31603300/

相关文章:

java - bluemix 上支持 http posts 的 Web 服务

Java PrintWriter 不工作

java - Java中的变量文件名

linux - 面对tomcat连接器的问题

java - 如何从 Tomcat 的特定主机获取签名者证书?

java.lang.NoClassDefFoundError : org/glassfish/jersey/internal/inject/Binder when started Tomcat Server 错误

Java:通过类中的多个方法将文本写入文件而不使用 main() 方法

java - 无法为 Java 应用程序安装 SSL 证书

java - 如何使用 AR core 将多个 3D 对象组合为一个

java - 我应该在哪个类中放置一个方法来进行比较?