Web xml文件导致的错误

时间:2017-06-10 17:30:38

标签: servlets java-ee web.xml

我在web.xml文件中遇到问题。

我收到错误,本地主机上的服务器Tomcat v8.0服务器无法启动。'当我尝试运行我的应用程序时。但是当标记用于web.xml文件时,可以绕过此错误,如下所示。

但是新问题是,当我在web.xml中使用上下文参数时,它们不能在侦听器类中使用。

ServletContext sc=event.getServletContext();
String database= sc.getInitParameter("Database");

数据库值始终收到null。 删除元素标记和标记时,数据库字符串将提取正确的值。但标签需要servlet标签才能工作。

有人可以告诉我这方面的解决方案。 我在下面给出了web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<element>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>A</display-name>

  <servlet>
    <servlet-name>login</servlet-name>
    <servlet-class>com.manage.control.EnrollmentServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>login</servlet-name>
    <url-pattern>/EnrollmentServlet</url-pattern>
  </servlet-mapping>


  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>



  <listener>
    <listener-class>com.test.listener.DeatabaseNameListener</listener-class>
  </listener>

  <context-param>
    <param-name>Database</param-name>
    <param-value>jdbc:mysql://localhost:3307/studentmanagement</param-value>
  </context-param>

  <context-param>
    <param-name>DatabaseUserName</param-name>
    <param-value>root</param-value>
  </context-param>

  <context-param>
    <param-name>DatabasePassword</param-name>
    <param-value>root</param-value>
  </context-param>

</web-app>
</element>

1 个答案:

答案 0 :(得分:0)

没有这样的标签作为元素。您的web.xml应如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
     version="3.1">
  <display-name>A</display-name>

  <context-param>
    <param-name>Database</param-name>
    <param-value>jdbc:mysql://localhost:3307/studentmanagement</param-value>
  </context-param>

  <context-param>
    <param-name>DatabaseUserName</param-name>
    <param-value>root</param-value>
  </context-param>

  <context-param>
    <param-name>DatabasePassword</param-name>
    <param-value>root</param-value>
  </context-param>

  <listener>
    <listener-class>com.test.listener.DeatabaseNameListener</listener-class>
  </listener>

  <servlet>
    <servlet-name>login</servlet-name>
    <servlet-class>com.manage.control.EnrollmentServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>login</servlet-name>
    <url-pattern>/EnrollmentServlet</url-pattern>
  </servlet-mapping>

  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

</web-app>

请注意,上下文参数较早,名称空间声明表示Servlet 3.1。以前的订单很重要 - 我不认为它有任何更多,但我仍然命令他们遵循旧的规范。