【问题标题】:Troubles to start the right tomcat 8启动正确的tomcat 8的烦恼
【发布时间】:2015-11-07 18:45:44
【问题描述】:

我无法启动正确的 tomcat。 我在 Eclipse 中安装了 tomkat 8(带有 servlet-api 3.1)。 Window-Preference-Server-Runtime Invirements-Add-Apache Tomcat v8.0-目录(C:\apache-tomcat-8.0.28)-完成 但是 Eclipse 运行一个带有 servlet-api 2.x 的 tomcat。 System.out.println(getServletContext().getMajorVersion()) 显示 2。 如何启动 getServletContext().getMajorVersion() 必须为 3 的 tomcat?

web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
<display-name>Archetype Created Web Application</display-name>

<!-- SERVLET -->
<servlet>
    <servlet-name>ServletMenu</servlet-name>
    <jsp-file>/menu.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>ServletMenu</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
<!-- SERVLET -->
<servlet>
    <servlet-name>ServletList</servlet-name>
    <jsp-file>/list.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>ServletList</servlet-name>
    <url-pattern>/list.do</url-pattern>
</servlet-mapping>
<!-- SERVLET -->
<servlet>
    <servlet-name>ServletImport</servlet-name>
    <jsp-file>/import.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>ServletImport</servlet-name>
    <url-pattern>/import.do</url-pattern>
</servlet-mapping>

<!-- SERVLET -->
<servlet>
    <servlet-name>Menu</servlet-name>
    <servlet-class>com.training.Menu</servlet-class>
</servlet>
<!-- SERVLET MAPPING -->
<servlet-mapping>
    <servlet-name>Menu</servlet-name>
    <url-pattern>/menu</url-pattern>
</servlet-mapping>

<!-- SERVLET -->
<servlet>
    <servlet-name>List</servlet-name>
    <servlet-class>com.training.ListDisplay</servlet-class>
</servlet>
<!-- SERVLET MAPPING -->
<servlet-mapping>
    <servlet-name>List</servlet-name>
    <url-pattern>/list.do</url-pattern>
</servlet-mapping>

<!-- SERVLET -->
<servlet>
    <servlet-name>Import</servlet-name>
    <servlet-class>com.training.Import</servlet-class>

</servlet>
<!-- SERVLET MAPPING -->
<servlet-mapping>
    <servlet-name>Import</servlet-name>
    <url-pattern>/import</url-pattern>
</servlet-mapping>

<welcome-file-list>
    <welcome-file>menu.jsp</welcome-file>

</welcome-file-list>

</web-app>

【问题讨论】:

  • 请给我们看看web.xml的内容
  • 好吧,你在 2.3 版中使用 dtd,那么你还指望如何使用 3 版?
  • 我需要改变什么?

标签: java tomcat servlets


【解决方案1】:

像这样声明 Servlets 3.1 的标头:

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

【讨论】:

  • 没有任何改变。在 Eclipse 启动 tomcat 时写入 INFO:正在启动 Servlet 引擎:Apache Tomcat/6.0.29
  • Tomcat 8 不支持 servlet 3。可能您没有在 eclipse 安装中配置 tomcat 8。请关注this guide,然后通过关注this guide 确保您的应用程序已设置为在该tomcat 上运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-02
  • 1970-01-01
  • 1970-01-01
  • 2016-07-16
  • 2017-04-15
相关资源
最近更新 更多