2009-08-05 219 views
1

我在运行我的应用程序时遇到了一个不寻常的错误,只是想知道是否有人遇到过这个问题。我使用谷歌协议缓冲区,我的servlet需要一个请求,并尝试处理它,我有以下代码:内部服务器错误

InputStream s = request.getInputStream(); 
AdRequest adRequest = AdRequest.parseFrom(s); 

执行第二线后,我得到下面在MyEclipse中调试程序的错误:

来源找不到ApplicationFilterChain.internalDoFilter(ServletRequest,ServletResponse)行:310

我正在使用Jboss应用服务器。我得到一个HTTP状态代码500:内部服务器错误。

有没有人有任何建议/想法?

+0

如果你注释掉你的doGet方法中的所有代码行,它是否仍然会抛出错误?谁调用internalDoFilter方法?听起来像是servlet容器正在调用的东西,因此itt可能是您的Web应用程序配置中的某个东西(特别是过滤器),并且与AdRequest完全无关。 – 2009-08-05 17:22:41

+0

堆栈跟踪?我以前得到500:内部服务器错误。至少有两种方式可以发生。 – stevedbrown 2009-08-05 17:48:35

+0

我确实评论了所有的代码行,并运行我的客户端程序,这次调用了servlet,这次它成功地使用了Http Status 200。 – msharma 2009-08-05 18:15:55

回答

1

我已经整理出了问题。 protobuffers.jar文件没有被包含在我的项目.war文件中,尽管我已经将该jar添加到了我的项目中,MyEclipse并未包含它。在遵循Jboss服务器的路径并查看.war的内部时,我发现该jar不在那里。将它复制到Jboss /.../ default/server/deploy/myproject.war/WEB-INF/lib目录后,错误消失了,我可以向servlet发送请求。

谢谢。

问候。

0

我会检查你的jboss日志服务器// log/server.log(假设你没有配置它在别的地方),你会得到更好的问题描述。

内部服务器错误仅仅意味着未处理的异常正在通过过滤器链。