java项目出现500错误是啥原因

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java项目出现500错误是啥原因相关的知识,希望对你有一定的参考价值。

HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /deletexuan.jsp at line 56

53: <%
54: String s="select * from xuan";
55: ResultSet rs=Li.getRs(s);
56: while(rs.next())
57: out.print("<form action='DelScoreServlet'>");
58: String ss=rs.getString("xname");
59: out.print("<tr><td>"+ss+"</td><td>");

Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause
java.lang.NullPointerException
org.apache.jsp.deletexuan_jsp._jspService(deletexuan_jsp.java:121)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.
Apache Tomcat/6.0.16

原因可能为:
1、运行的用户数过多,对服务器造成的压力过大,服务器无法响应,则报HTTP500错误。减小用户数或者场景持续时间,问题得到解决。
2、该做关联的地方没有去做关联,则报HTTP500错误。进行手工或者自动关联,问题得到解决。
3、录制时请求的页面、图片等,在回放的时候服务器找不到,则报HTTP500错误,若该页 面无关紧要,则可以在脚本中注释掉,问题将会得到解决。例如:有验证码的情况下,尽 管测试时已经屏蔽了,但是录制的时候提交了请求,但回放的时候不存在响应。
4、参数化时的取值有问题,则报HTTP500错误。可将参数化列表中的数值,拿到实际应用系统中进行测试,可排除问题。
5、更换了应用服务器(中间件的更换,如tomcat、websphere、jboss等),还是利用原先录制的脚本去运行,则很可能报HTTP500错误。因为各种应用服务器处理的机制不一样,所录制的脚本也不一样,解决办法只有重新录制脚本。
6、Windows xp2 与ISS组件不兼容,则有可能导致HTTP500错误。对ISS组件进行调整后问题解决。
7、系统开发程序写的有问题,则报HTTP500错误。例如有些指针问题没有处理好的,有空指针情况的存在。修改程序后问题解决。
8、如果测试中所进行的操作需要向数据库中插入数据,若大数据量的情况下导致数据库中表空间已满,或 缓冲池较小无法满足数据的存取等,都有可能导致HTTP500错误。调整数据库、修改连接池大小,问题解决。
500错误出现的原因太多了,对于我来说,出现500错误很都情况下都是代码里有些关联没有做,然后导致出错,当然还有一小部分是有时候不注意,服务器开的时间过长,导致服务器崩溃,总之,很多地方都需要注意
参考技术A 这个应该是javaWeb项目吧,访问页面出现500一般是代码出现异常,可以查看控制台的异常信息来确定具体出现错误的原因 参考技术B 56: while(rs.next())

这句话中的rs 没有取到东西。。。
引起空指针异常。。。
由于问题出在js里,所以会报出jasper异常!!!追问

那rs应该取什么东西啊?

追答

看代码,猜测是一个 结果集,从S 也就是 那个sql语句的查询结果

保存形式类似于 List

本回答被提问者和网友采纳
参考技术C java.lang.NullPointerException
org.apache.jsp.deletexuan_jsp._jspService(deletexuan_jsp.java:121)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

这里告诉你什么错误、哪个文件、哪一行的了

好好检查吧追问

String s="select * from xuan";
ResultSet rs=Li.getRs(s);
while(rs.next())
out.print("");
String ss=rs.getString("xname");
out.print(""+ss+"");??

追答

ResultSet rs=Li.getRs(s);

一定返回ResultSet的非null对象吗。

追问

返回的要么是rs要么为空

追答

为空,就会出错了。

还可能Li是空对象。

使用前,检查一下

追问

Li是一个类,这个类主要管数据库的删除,修改,查询,添加,但是能出来的功能就只有添加和修改

参考技术D java.lang.NullPointerException
空指针异常
55: ResultSet rs=Li.getRs(s);
可能这句话返回的rs是空指针。你把rs打印出来看下吧追问

那个DBHander里面设的rs就是为空,改了是不是就好了?

追答

Li.getRs(s);这个方法的代码贴出来看看?

追问

public ResultSet getRs(String sql) throws SQLException

jspInit();
try
rs=stmt.executeQuery(sql);
return rs;
catch (Exception e)
System.out.print(e);
return null;

追答

System.out.print(e); 你看下这里有没有打印错误信息。
在这句下面加一句55: ResultSet rs=Li.getRs(s);
if(null!=rs)
while(rs.next())
out.print("");
String ss=rs.getString("xname");
out.print(""+ss+"");

Visual Studio 中出现 D8049 错误的原因是啥?

【中文标题】Visual Studio 中出现 D8049 错误的原因是啥?【英文标题】:What's the cause of a D8049 error in visual studio?Visual Studio 中出现 D8049 错误的原因是什么? 【发布时间】:2016-02-08 03:58:43 【问题描述】:

我正在使用 openframeworks 创建一个项目(完整源代码在这里:https://github.com/morphogencc/ofxAsio/tree/master/example-udpreceiver),并且空项目似乎可以正常编译。

我添加了 ASIO 库和一些头类,现在项目似乎给我以下错误:

1>------ Build started: Project: example-udpreceiver, Configuration: Debug x64 ------ 1> main.cpp 1>cl : Command line error D8049: cannot execute 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\c1xx.dll': command line is too long to fit in debug record 1>cl : Command line error D8040: error creating or communicating with child process

我在 *** 甚至微软的页面上都找不到任何错误 D8049 的示例,而且谷歌几乎没有找到任何结果。唯一远程有用的是这个 github 问题:

https://github.com/deplinenoise/tundra/issues/270

但我仍然不确定是什么导致了问题。有没有人熟悉这个错误,并且可以推荐一种方法来解决导致它的原因?

提前致谢!

【问题讨论】:

【参考方案1】:

对使用 UE4 的我来说,这是一个间歇性错误。

我添加了“bLegacyPublicIncludePaths = false;”到 project.Build.cs 的最里面的块并重新编译没有错误。

然后我删除了该行并再次编译,没有错误。

错误消息建议添加“DefaultBuildSettings = BuildSettingsVersion.V2;”到 project.Target.cs 工作。

【讨论】:

【参考方案2】:

这听起来有点奇怪,因为它基本上来自内部生成的数据。但是,您确实可以控制它。从表面上看错误消息,您可能在命令行中传入了许多/很多定义的符号(或者您确实有冗长的定义),或者您可能有一些冗长的文件路径。

如果您查看项目属性,C++ 部分下的选项之一是“命令行”,它将准确显示传递给编译器的内容。当您查看时,您可以看到您有许多或冗长的参数,然后进行更改以缩短它们。

定义太多?将它们放在标题中(可能是 stdafx.h)并以这种方式包含它们。

长文件路径?缩短路径,将文件放在其他位置,或为使用较短路径的真实目录设置文件系统别名。

【讨论】:

谢谢;查看命令行参数帮助我理清了不应该添加的内容!包含太多不相关的文件作为附加包含目录。

以上是关于java项目出现500错误是啥原因的主要内容,如果未能解决你的问题,请参考以下文章

android Studio 项目里报这个错误,是啥原因啊。编译时报错。

java 开发 写了一个接口,在同一个项目内调用使用正常,项目打包成jar之后调用不了这接口了是啥原因

Idea 出现 Error:java: Compilation failed: internal java compiler error

求解: java web项目 http:500错误

500内部服务器错误是啥意思?

jsp错误500