`

maven tomcat 报错SpringServletContainerInitializer ServletContainerInitializer Fi

    博客分类:
  • java
阅读更多
项目里使用的tomcat插件:
<plugin>
				<groupId>org.apache.tomcat.maven</groupId>
				<artifactId>tomcat7-maven-plugin</artifactId>
				<version>2.2</version>
				<configuration>
					<port>8080</port>
					 <path>/</path>
				</configuration>
			</plugin>



无论是用tomcat7启动,还是用tomcat6启动都报错,使用jetty启动正常

tomcat7:run
	at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	... 6 more
Caused by: java.lang.ClassCastException: org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer
	at org.apache.catalina.startup.ContextConfig.getServletContainerInitializer(ContextConfig.java:1670)
	at org.apache.catalina.startup.ContextConfig.getServletContainerInitializers(ContextConfig.java:1652)
	at org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1562)
	at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1270)
	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5322)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 6 more



tomcat:run
java.lang.ClassCastException: com.xxxx.xxxx.filter.BlacklistIPFilter cannot be cast to javax.servlet.Filter
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
	at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4001)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4651)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
	at org.apache.catalina.startup.Embedded.start(Embedded.java:825)
	at org.codehaus.mojo.tomcat.AbstractRunMojo.startContainer(AbstractRunMojo.java:558)
	at org.codehaus.mojo.tomcat.AbstractRunMojo.execute(AbstractRunMojo.java:255)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:347)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:154)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:582)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:158)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
	at org.codehaus.classworlds.Launcher.main(Launcher.java:46)



搜索发现是与servlet-api的版本有关,查看maven的依赖,发现dubbo依赖jetty,而jetty自带servlet-api包,使项目里配置的javax.servlet无效
<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jsp-api</artifactId>
			<scope>provided</scope>
			<version>2.0</version>
		</dependency>


为dubbo的依赖排除jetty的servlet-apijar包,就可以正常启动了
<dependency>
			<exclusions>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.mortbay.jetty</groupId>
					<artifactId>servlet-api</artifactId>
				</exclusion>
			</exclusions>
		</dependency>


<exclusions>
				<exclusion>
					<groupId>org.eclipse.jetty.orbit</groupId>
					<artifactId>javax.servlet</artifactId>
				</exclusion>
			</exclusions>



分享到:
评论

相关推荐

    myeclipse创建maven工程报错 Could not resolve

    myeclipse创建maven工程报错 Could not resolve

    eclipse导入maven项目报错解决办法

    ### Eclipse导入Maven项目报错解决办法 在开发过程中,我们常常会遇到使用Eclipse导入Maven项目时出现的各种报错情况。本文旨在系统地介绍如何解决这些常见问题,包括但不限于配置环境、设置JDK版本、配置Maven库...

    SpringBoot Maven Clean报错解决方案

    主要介绍了SpringBoot Maven Clean报错解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    解决Maven 项目报错 java.httpservlet和synchronized使用方法

    解决Maven项目报错java.httpservlet和synchronized使用方法 在Maven项目中,我们经常会遇到一些报错问题,例如java.httpservlet和synchronized使用方法等。这篇文章将为大家带来解决Maven项目报错java.httpservlet...

    maven tomcat7改造后插件

    &lt;groupId&gt;org.apache.tomcat.maven &lt;artifactId&gt;tomcat7-maven-plugin &lt;path&gt;/ &lt;port&gt;9001 &lt;staticContextPath&gt;/img &lt;staticContextDocbase&gt;C:/Users/sinodata-ylq/IdeaProjects/zshop/zshop_parent/zshop_...

    maven tomcat idea 配置

    在IT开发领域,Maven、Tomcat和IntelliJ IDEA是三个非常重要的工具。Maven是Java项目管理和构建的利器,Tomcat是一个流行的Java Servlet容器,用于运行Web应用程序,而IntelliJ IDEA则是广泛使用的Java集成开发环境...

    Maven使用tomcat8-maven-plugin插件.docx

    Maven 使用 tomcat8-maven-plugin 插件 Maven 是一个流行的构建自动化工具,它可以帮助开发者自动完成项目的编译、测试、打包、部署等任务。 Tomcat 是一个流行的 Web 服务器,Maven 提供了一个插件 tomcat8-maven-...

    maven tomcat 服务器

    在Maven中,我们可以使用Maven Tomcat插件(maven-tomcat-plugin或tomcat7-maven-plugin/tomcat9-maven-plugin,取决于Tomcat版本)来直接将项目部署到Tomcat服务器上。通过在pom.xml文件中添加相应插件配置,开发者...

    Maven install 报错&quot;程序包不存在&quot;问题的解决方法

    Maven install 报错"程序包不存在"问题的解决方法 Maven install 报错"程序包不存在"问题是 Maven 项目开发中常见的问题之一。当我们在使用 Maven 进行项目构建时,可能会遇到"程序包不存在"的错误信息,这种错误...

    Maven Tomcat插件源码

    Maven Tomcat插件是Apache Maven项目中的一个重要组件,它允许开发人员通过Maven构建工具直接部署和运行Java Web应用程序到Apache Tomcat服务器上。这个插件极大地简化了开发流程,使得开发者无需手动将应用部署到...

    tomcat-maven-plugin

    maven-tomcat-plugin让maven与tomcat配合得很好。它可以把应用部署到Tomcat服务器,也可以把tomcat作为内嵌服务器启动,就像jetty一样。 使用JPDA启动tomcat的远程调试功能。这样就能与eclipse配合起来,轻松地实现...

    部署到tomcat报错

    "部署到Tomcat报错"这个问题可能是由于多种原因引起的,包括但不限于配置错误、环境问题、版本不兼容等。以下将针对这个主题展开讨论。 首先,当我们尝试部署一个Web应用到Tomcat时,最常见的报错可能涉及到以下几...

    关于IDEA2020.1新建项目maven PKIX 报错问题解决方法

    关于IDEA2020.1新建项目maven PKIX报错问题解决方法 在IDEA2020.1中新建项目时,经常会遇到maven PKIX报错问题,这是一种常见的错误,影响了项目的正常构建和运行。这个错误的主要原因是ValidatorException:PKIX ...

    maven的安装文件以及集成TOMCAT、eclipse的教程

    3. **将Maven项目部署到Tomcat**: 右键选中项目,选择`Properties -&gt; Run/Debug Settings`,在Maven Build配置中添加`tomcat7:deploy`目标,然后将项目拖入Servers视图的Tomcat服务器。 4. **启动Tomcat**: 在...

    解决idea导入ssm项目启动tomcat报错404的问题

    解决Idea导入SSM项目启动Tomcat报错404的问题 本文旨在解决Idea中导入SSM项目启动Tomcat时报错404的问题,提供了一种有效的解决方案。该方案通过在pom文件中添加特定的配置信息,解决了Idea无法识别Tomcat和JDK的...

    Maven Tomcat 插件

    ### Maven Tomcat 插件详解 #### 一、引言 在现代软件开发过程中,持续集成与部署(CI/CD)已成为提升开发效率的关键技术之一。对于Java Web开发者而言,如何快速有效地将Web应用程序部署到Tomcat服务器上,是提高...

    maven通过tomcat插件,如何运行Java Web项目 支持断点

    在开发Java Web应用程序时,Maven和Tomcat的结合使用能大大提高我们的效率。Maven作为一个强大的项目管理和构建工具,能够管理项目的依赖、构建流程以及生命周期。而Tomcat则是一个流行的开源Web服务器和应用服务器...

    Java + Maven Tomcat 应用程序示例.zip

    Java + Maven Tomcat 应用程序示例Java-tomcat-maven 示例这是使用 Maven 和 webapp-runner 为 Tomcat 构建的可部署 Java Web 应用程序示例。本地运行(需要安装 maven 和 java)mvn packagejava -jar target/...

    Spring boot maven项目报错unable to find valid certification path to requested target

    参考: ...目录 一、更改镜像 二、手动将需要的插件和依赖下载放到本地厂库 三、下载阿里网站的资格证书...四、设置maven的VM属性,这个成功解决问题 从https://start.spring.io/生成的spring boot项目,报错unable to f

    maven与Tomcat绿色版

    对于部署,可以利用Maven的`tomcat7-maven-plugin`或`tomcat8-maven-plugin`插件,直接将WAR文件部署到本地或远程的Tomcat服务器上,无需手动操作。通过命令行执行`mvn tomcat7:deploy`或`mvn tomcat8:deploy`,即可...

Global site tag (gtag.js) - Google Analytics