- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的 web.xml 配置文件中添加了一些参数,如下所示:
<context-param>
<param-name>service1</param-name>
<param-value>http://www.example.com/example2.html</param-value>
</context-param>
<context-param>
<param-name>service2</param-name>
<param-value>http://www.example.com/example2.html</param-value>
</context-param>
...
我尝试在我的 servlet 中获取参数,特别是在我的服务方法中:
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println(this.getServletContext().getInitParameter("service1"));
...
但是在运行时我有一个 NullPointerException...我怎样才能得到包含在 web.xml 中的参数值?
这是堆栈跟踪:
GRAVE: Servlet.service() for servlet DispatcherServlet threw exception
java.lang.NullPointerException
at javax.servlet.GenericServlet.getServletContext(GenericServlet.java:160)
at it.servlethope.DispatcherServlet.service(DispatcherServlet.java:66)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
DispatcherServlet.java:66 是我尝试 getInitParameter() 的行
最佳答案
如果调用 getServletContext()
抛出 NPE 则意味着 ServletConfig
为空。
因此,您已经在自己的 servlet 中覆盖了 init(ServletConfig config)
,并且您没有按照 Javadoc 正确调用 super.init(config)
:
Called by the servlet container to indicate to a servlet that the servlet is being placed into service. See
Servlet.init(javax.servlet.ServletConfig)
.This implementation stores the
ServletConfig
object it receives from the servlet container for later use. When overriding this form of the method, callsuper.init(config)
.
相应地修复它:
public void init(ServletConfig config) throws ServletException {
// Do your thing here.
// ...
// And then finally:
super.init(config);
}
或者直接使用无参数的init()
方法,不需要ServletConfig
,这样你就不用担心了。
关于Java 小服务程序 : getInitParameter not work in Service(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3036855/
我在我的 web.xml 配置文件中添加了一些参数,如下所示: service1 http://www.example.com/example2.html s
为什么在以下代码示例中 config.getInitParameter(String) 总是返回 null? public void init(ServletConfig config) throws
当我尝试从 eclipse 中启动我的 Web 应用程序时,出现以下异常: SCHWERWIEGEND: Exception sending context initialized event to
本文整理了Java中org.eclipse.jetty.websocket.WebSocketServlet.getInitParameter()方法的一些代码示例,展示了WebSocketServl
我正在使用一些旧的 jsp 应用程序,我们正在移动服务器,因此 url 已更改。我们得到的新网址中有端口号 - http://example.com:8686/theapp 现在这行 getServl
我是一名优秀的程序员,十分优秀!