线程异常 "ajp-bio-8009-exec-1"
Exception in thread "ajp-bio-8009-exec-1"
我遇到了奇怪的错误。我的所有 java 代码在我的笔记本电脑 (windows 7) 上运行没有任何问题,但是当我将它上传到我们的服务器 (linux) 时,我在 tomcat 日志中看到以下内容:
Exception in thread "ajp-bio-8009-exec-1" java.lang.WhosebugError
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;
}
请指教
感谢期待
看起来您的程序会在出现错误时发送电子邮件。在这种情况下,您在发送电子邮件时出错,因此您有一个 "endless loop".
你可以在这里看到:
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.WhosebugError
实际问题如下:
我在写我的代码:
ErrorCheck ec = new ErrorCheck();
String error = ec.error();
然后在 catch 块中调用
ec.errorMsg(error+"SendEmail.send()", e);
我从所有 classes 错误变量中删除了存储 ec.error();并在 ErrorCheck.java 的主要 class 方法 errorMsg 中更正如下:
String finalSubject = error()+subject;
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
e.printStackTrace(pw);
现在工作正常
我遇到了奇怪的错误。我的所有 java 代码在我的笔记本电脑 (windows 7) 上运行没有任何问题,但是当我将它上传到我们的服务器 (linux) 时,我在 tomcat 日志中看到以下内容:
Exception in thread "ajp-bio-8009-exec-1" java.lang.WhosebugError
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;
}
请指教
感谢期待
看起来您的程序会在出现错误时发送电子邮件。在这种情况下,您在发送电子邮件时出错,因此您有一个 "endless loop".
你可以在这里看到:
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.WhosebugError
实际问题如下:
我在写我的代码:
ErrorCheck ec = new ErrorCheck();
String error = ec.error();
然后在 catch 块中调用
ec.errorMsg(error+"SendEmail.send()", e);
我从所有 classes 错误变量中删除了存储 ec.error();并在 ErrorCheck.java 的主要 class 方法 errorMsg 中更正如下:
String finalSubject = error()+subject;
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
e.printStackTrace(pw);
现在工作正常