【问题标题】:unable to start tomcat with maven project无法使用 maven 项目启动 tomcat
【发布时间】:2016-12-16 13:55:48
【问题描述】:

使用 maven 启动 tomcat 时出现以下错误

java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/web_store]] 在 java.util.concurrent.FutureTask.report(Unknown Source) 在 java.util.concurrent.FutureTask.get(未知来源)

原因:org.apache.catalina.LifecycleException: 启动失败 零件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/web_store]] 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153) ... 6 更多

原因:java.lang.IllegalArgumentException:Servlet 映射 指定一个未知的 servlet 名称 dispatcherServlet-servlet at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3180) 在 org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3159) 在 org.apache.catalina.startup.ContextConfig.configureContext(ContextConfig.java:1376)

2016 年 8 月 10 日下午 2:28:01 org.apache.catalina.core.ContainerBase startInternal SEVERE:子容器在启动期间失败 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine[Catalina].StandardHost[localhost]] 在 java.util.concurrent.FutureTask.report(未知来源)在 java.util.concurrent.FutureTask.get(未知来源)

我正在使用 maven 并收到错误 启动tomcat时运行正常,但是当我用tomcat运行项目时显示以下错误

编辑

1 个 web.xml

<?xml version="1.0" encoding="UTF-8"?>
<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_2_5.xsd"
    version="2.5">
    <display-name>webstore</display-name>
    <welcome-file-list>
        <welcome-file>view/index.html</welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcherServlet-servlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app> 

2 dispatcherServlet-servlet.xml

<mvc:annotation-driven />
    <context:component-scan base-package="web_store.*" />
    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/view/" />
        <property name="suffix" value=".jsp" />
    </bean>

【问题讨论】:

  • 和dispatcherServlet-servlet.xml
  • @NicolasFilotto,请检查我添加的文件
  • &lt;servlet-name&gt;&lt;servlet&gt;&lt;servlet-mapping&gt; 中必须相同

标签: java maven spring-mvc tomcat


【解决方案1】:

你的错误在这里:

<servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcherServlet-servlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

在您的 servlet 映射中,您需要引用已在您的 web.xml 中定义的 servlet,而这里仅定义了 dispatcherServlet,因此只需在您的 servlet 映射中将 dispatcherServlet-servlet 重命名为 dispatcherServlet,如下所示:

<servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

【讨论】:

  • 不幸的是,这导致我出现另一个错误IOException parsing XML document from ServletContext resource [/WEB-INF/dispatcherServlet-servlet.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/dispatcherServlet-servlet.xml] 找不到 bean.xml
  • 所以尝试在 web.xml 中的两个地方都将 dispatcherServlet 重命名为 dispatcherServlet-servlet
  • 但是根据maven资源文件应该在资源文件夹下声明时找到
  • 我都改成dispatcherSerlet解决了这个错误,你能指导我如何解决这个问题
  • 尝试将 dispatcherServlet-servlet.xml 移动到 src/main/webapp/WEB-INF
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-03
  • 1970-01-01
  • 2012-07-05
  • 2015-06-06
  • 2011-12-14
  • 2010-12-13
  • 1970-01-01
相关资源
最近更新 更多