3

在 request.getHeaderNames 方法调用的 websphere(版本 6 sp11)中,我得到了这个异常

java.lang.NullPointerException

            at com.ibm.ws.webcontainer.srt.SRTServletRequest.getHeaderNames(SRTServletRequest.java:345)

            at ....

我没有 SRTServletRequest 的源代码。

有人遇到过这个问题吗?

4

2 回答 2

4

终于有答案了,谢谢大家帮助我。问题是:1. 开发人员在类字段中保存了一个请求,2. 在访问类级别请求字段时,其他一些线程开始和结束,因此销毁调用和 nullPointer。

于 2009-09-28T18:34:11.060 回答
1

这里给出了 NPE 的一种可能解释。

如果不查看 WebSphere,我无法确定,但是 SRTServletRequest.getHeaderNames() 中的链接报告 NPE 的诊断表明,如果您调用请求对象上的方法已经“超出范围”,则可能会发生这种情况。换句话说,在 WebSphere 容器的生命周期管理处理它之后。现在,如果将 WebSphere 与 Spring 一起使用时会发生这种情况,那么它很可能会在 WebSphere 单独使用时发生。

如果在 doPost() 中调用 getHeaderNames(),是否有可能您的代码做了一些事情,导致 WebSphere 认为 servlet 已经完成了请求对象?它可能在 servlet 中,或者在之前触及请求对象的过滤器中。

于 2009-07-29T09:17:21.960 回答