gpt4 book ai didi

java - tomcat 无法获取 ServletContext.getContextPath()

转载 作者:行者123 更新时间:2023-11-28 22:23:17 24 4
gpt4 key购买 nike

我正在尝试获取 contextPath 但出现此异常

ServletContextHandler.contextInitialized()HERE MY PRINT
2011-02-22 02:45:38,614 ERROR main tomcat.localhost./photo.Context - Error listenerStart
2011-02-22 02:45:38,615 ERROR main tomcat.localhost./photo.Context - Context startup failed due to previous errors

这是我的 ServletContextListener

public class ServletContextHandler implements ServletContextListener {
private final static Logger logger = Logger.getLogger(ServletContextHandler.class);

public ServletContextHandler(){}

public void contextInitialized(ServletContextEvent contextEvent){
try{
//LOG DEBUG
logger.debug("Server.init()-> set context path");
System.out.println("ServletContextHandler.contextInitialized()HERE MY PRINT");
System.out.println("ServletContextHandler.contextInitialized() " + contextEvent.getServletContext().getContextPath());
}catch(Exception e){
e.printStackTrace();
}
}

public void contextDestroyed(ServletContextEvent contextEvent){
}

}

这是我的 web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">

<web-app>
<listener>
<listener-class>
utils.ServletContextHandler
</listener-class>
</listener>
</web-app>

你能帮帮我吗?

最佳答案

ServletContext.getContextPath() 仅适用于 Servlet 2.5 规范。您的 web.xml 部署描述符使用 2.3 DTD,因此它强制与 Servlet 2.3 兼容。如果您在 Tomcat 6.0.x 或更高版本上运行,请将 web.xml 中的 DOCTYPE 与 2.5 架构引用交换:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">

如果解决了问题,请告诉我。

关于java - tomcat 无法获取 ServletContext.getContextPath(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5072958/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com