java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet

1、问题描述

Eclipse + Maven 使用 tomcat7-maven-plugins 插件,Run As —> Maven Building... —> Goals: clean tomcat7:run 启动时报错如下:

java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet
	at org.apache.tomcat.util.IntrospectionUtils.callMethod1(IntrospectionUtils.java:855)
	......

2、问题出现的可能原因是 没有正确配置

出现这个问题搞了两天才好,看了网上有许多的解决办法,奈何还是没能帮助我解决掉这个问题。出现的问题可能不一样,这里列一下网上答案,或许刚好能解决掉你的问题!!

1)多数人提供的解决方法如下 :

打开 Tomcat 配置文件 context.xml,我的为 apache-tomcat-7.0.68\conf\context.xml 文件,在 <Context></Context> 中添加 <Loader delegate="true"/>

2)部分解决方法为:

在 pom.xml 中添加依赖如下:

<dependency>
      <groupId>org.apache.tomcat.maven</groupId>
      <artifactId>tomcat7-maven-plugin</artifactId>
      <version>2.2</version>
</dependency>
<dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-catalina</artifactId>
      <version>7.0.47</version>
      <scope>provided</scope>
</dependency>

3)少部分解决方法为:

将 WEB-INF/lib 下有关 catalina.*.jar 问价干掉,然后重启服务

3、解决方法

打开 pom.xml 文件添加配置如下:

<plugin>
      <groupId>org.apache.tomcat.maven</groupId>
      <artifactId>tomcat7-maven-plugin</artifactId>
      <version>2.2</version>
      <configuration>
            <path>/mauger</path>
            <port>8081</port>
            <uriEncoding>UTF-8</uriEncoding>
      </configuration>
</plugin>

注意不要将 tomcat7-maven-plugin 配置到依赖 <dependencies>

配置完后先 右键项目,选择 Maven —> Update project...

最后使用在本地启动服务: 右键项目 / pom.xml 选择 Debug As / Run As —> Maven build... —> Goals: clean tomcat7:run

若控制台没有报错的话,就可以在浏览器中访问了:http://localhost:8081/mauger`

posted @ 2018-11-06 02:44  梦飞扬~  阅读(4873)  评论(0编辑  收藏  举报