在调试动态网页时出现http500错误怎么办?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在调试动态网页时出现http500错误怎么办?相关的知识,希望对你有一定的参考价值。
HTTP Status 500-
type Exception report
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: java.lang.NullPointerException
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
java.lang.NullPointerException
com.tools.ConnDB.executeQuery(ConnDB.java:59)
com.dao.SongDAO.queryType(SongDAO.java:19)
com.action.SongAction.main(SongAction.java:68)
com.action.SongAction.execute(SongAction.java:34)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
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.10 logs.
可能的原因是,在服务器端发生的异常,例如你的代码有问题无法完成请求的处理,Web服务器配置有误,或者数据库连接不上,导致在前端浏览器上无法正常根据请求来响应,就会报500错误
看到了吗,你发生的这个错误是:
java.lang.NullPointerException
可能是获取到的数据库连接(Connection)为null,调试跟踪,检查一下吧 参考技术A 数据库连接错误
没有获取到相应的东西,NullPointerException---空指针异常 参考技术B 数据库连接有问题
参考资料:百度一下
vc++ 调试时出现Debug Assertion Failed!该怎么办?
Program:D\vc test\833\Debug\833.exe
File:afxwin2.inl
Line:51
1、首先需要打开vc++,然后开始编写好程序源代码。
2、在执行程序时弹出的错误警告对话框,这个就是错误的信息,然后按快捷键y,等待一会。
3、最后,此时使用delete就是删除一个不存在的指针,从而报错,如下效果就是可以了。
参考技术A1、先写出源代码。
2、下图是在执行程序时弹出的错误警告对话框,类似的情况很多,我在调试dll插件的时候也时常碰到,后来发现大多是指针引起的错误。
3、因为pDist指针是静态分配的内存,当程序运行完后,其内存自动释放,此时使用delete就是删除一个不存在的指针,从而报错,而实际上delete是与new搭配使用的。
4、如果在运行的过程中你想知道每个变量有没有赋值,都是什么值的话可以从下图中查看
5、在下图标红的位置处你可以看到自己究竟在哪些地方加了断点。不需要时可以勾选掉,那样程序就不会走进去了。
6、如果你在运行的过程中知道是哪个地方出错了不需要走下去了,就点击一下下面的按钮程序将自动退出debug模式。
参考技术B 崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。 参考技术C 窗口可能还没有创建.具体要看你的代码. 参考技术D 对应50、51行为:_AFXWIN_INLINE void CWnd::SetFont(CFont* pFont, BOOL bRedraw)
ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, WM_SETFONT, (WPARAM)pFont->GetSafeHandle(), bRedraw);
ASSERT(::IsWindow(m_hWnd)); //表示 ::IsWindow(m_hWnd) 这个函数一定要返回true,否则就会弹出你这个对话框。这说明你这个CWnd类并不是一个有效的窗口。
ASSERT 对于检测代码的错误很重要,你应该学习并掌握,且在你自己的代码多用它。像这个例子,由于有ASSERT,你能够很快把程序的错误定位到“是由于你的CWnd类有问题” 。
一般ASSERT错误对话框出现后,按重试按钮 ,vs 会定位到错误的源代码 。这时需要观察“调用堆栈”(在调试模式下 按ALT+7 可以打开调用堆栈窗口),看看程序整个调用过程,是哪一步出错了导致现在的结果。
记住: ASSERT 和 调用堆栈 这2个工具 对于调试程序很重要。你的程序难免错误,这会帮你很快找到错误。希望你记住,去网上找找相关的知识。本回答被提问者和网友采纳
以上是关于在调试动态网页时出现http500错误怎么办?的主要内容,如果未能解决你的问题,请参考以下文章
登陆网页时出现 500 Servlet Exception 怎么解决
在打开网页时出现 Vusual Studio 实时调试器是怎么回事啊?怎么去掉!
在打开网页时出现 Vusual Studio 实时调试器是怎么回事啊?怎么去掉!
关于在网页拼接时出现:提示Uncaught SyntaxError: missing ) after argument list;错误的原因分析