Maven中Tomcat插件的使用
来源:互联网 发布:算法工程师 什么专业 编辑:程序博客网 时间:2024/05/29 10:09
以前常在Maven中用Jetty插件。由于系统的正式部署环境为Tomcat,因此把设置了Tomcat插入,可在使用过程中一直出错;现将设置过程中的错误整理了一个为广大初学者一些提示。以免在这些上面浪费时间。
系统原配置为Jetty插件。配置信息如下:
<plugin><groupId>org.mortbay.jetty</groupId><artifactId>jetty-maven-plugin</artifactId><version>8.1.16.v20140903</version><configuration><scanIntervalSeconds>3</scanIntervalSeconds></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.12.4</version><configuration><skipTests>true</skipTests></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.3</version><configuration><source>1.7</source><target>1.7</target></configuration></plugin>由于真实的部署环境为Tomcat,因此需要将Jetty插件改为Tomcat插件。使开发环境更接近于真实环境。因此新的配置如:
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <version>1.1</version> <configuration> <path>/</path> <port>8080</port> <uriEncoding>UTF-8</uriEncoding> <server>tomcat7</server> </configuration> </plugin>但是设置为Tomcat插件后。问题不断。错误如下:
java.lang.ClassCastException: org.springframework.web.filter.DelegatingFilterProxy cannot be cast to javax.servlet.Filterat 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)
从网上查找原因,说是servlet-api.jar包引起的冲突。因此Tomcat6及以上版本中自带servlet-api,因此两个不同jar之间引发此冲突。因此将原有代码<dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency>改为
<dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency>熟悉MAVEN的朋友应该都知道(<scope>provided</scope>)的含义,这里不做介绍。
然后通过(tomcat:run)命令启动Tomcat,可是上面的错误依旧存在。
因此我打开(POX.XML)选择(Dependency Hierarchy)选择,查看系统有哪些依赖。发现在(Resolved Dependencies)选择卡中存在(javax.servlet-api)。因此需要将这个jar的依赖给删除。而这个jar是通过其他jar自动依赖的,因此需要加入下面的代码
<dependency> <groupId>net.mingsoft</groupId> <artifactId>shiro-freemarker-tags</artifactId> <version>${shiro-freemarker-tags-version}</version> <exclusions> <exclusion> <artifactId>javax.servlet-api</artifactId> <groupId>javax.servlet</groupId> </exclusion> </exclusions> </dependency>
因外也可以在javax.servlet-api这个选项中右击,选择(Exclude Maven Artifact...)会弹出一个对话框,选择不想依赖的jar单击确定即可。
重新运行tomca:run之后系统正常。
0 0
- Maven中Tomcat插件的使用
- maven tomcat插件的使用
- maven tomcat插件的使用
- Eclipse中插件的使用:maven /ant /tomcat
- maven使用tomcat插件
- Maven的Tomcat插件的使用
- maven中tomcat插件的配置
- 使用maven的tomcat插件部署项目
- maven tomcat插件的配置与使用
- maven项目中,使用maven-tomcat插件报错解决
- Maven的tomcat插件tomcat-maven-plugin
- Maven的tomcat插件tomcat-maven-plugin
- Tomcat-maven-plugin插件使用
- 使用Maven配置Tomcat插件
- eclipse maven项目中使用tomcat插件部署项目
- 使用maven的tomcat插件实现webapp的自动部署
- maven web 项目 中 tomcat的使用
- 使用Maven Cargo 插件管理Tomcat的部署
- 数值的整数次方
- 数据库之路——SQL提升
- Ubuntu命令
- Pango在windows+vs2013下编译
- 数据库索引
- Maven中Tomcat插件的使用
- 王书金案最新消息
- 响应式字体研究
- Spring之Advice应用(下)
- SSM框架ApplicationContext.xml文件配置
- 中科呐喊WiFi热点广告机图文教程
- 二维码图片扫描 绘制扫描的图片的边框(Swift)
- 【玩转SQLite系列】(四)通过Android提供的API操作SQLite数据库
- Android动画-实现雪花飞舞动画效果