文档章节

启动报Duplicate fragment name: spring_web for jar

Wilsonp
 Wilsonp
发布于 2017/06/01 15:38
字数 551
阅读 439
收藏 0

web项目采用jetty-run-jetty插件启动,报错如下:

java.lang.IllegalStateException: Duplicate fragment name: spring_web for jar:file:///Users/xxx/Downloads/apache-maven-3.3.9/repository/org/springframework/spring-web/4.2.5.RELEASE/spring-web-4.2.5.RELEASE.jar!/META-INF/web-fragment.xml and jar:file:///Users/xxx/Downloads/apache-maven-3.3.9/repository/org/springframework/spring-web/4.3.2.RELEASE/spring-web-4.3.2.RELEASE.jar!/META-INF/web-fragment.xml
	at org.eclipse.jetty.webapp.MetaData.addFragment(MetaData.java:279)
	at org.eclipse.jetty.webapp.FragmentConfiguration.findWebFragments(FragmentConfiguration.java:75)
	at org.eclipse.jetty.webapp.FragmentConfiguration.preConfigure(FragmentConfiguration.java:42)
	at org.eclipse.jetty.webapp.WebAppContext.preConfigure(WebAppContext.java:480)
	at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:516)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
	at org.eclipse.jetty.server.Server.start(Server.java:405)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:106)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
	at org.eclipse.jetty.server.Server.doStart(Server.java:372)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
	at runjettyrun.Bootstrap.main(Bootstrap.java:79)

按照提示来看,是jar依赖重复了,导致找到了两个web_fragment段文件,直接被误导了,根本原因在于servlet3.0的新特性之一:可插性支持

那什么是“可插性支持”呢?

如果说 3.0 版本新增的注解支持是为了简化 Servlet/ 过滤器 / 监听器的声明,从而使得 web.xml 变为可选配置, 那么新增的可插性 (pluggability) 支持则将 Servlet 配置的灵活性提升到了新的高度。熟悉 Struts2 的开发者都知道,Struts2 通过插件的形式提供了对包括 Spring 在内的各种开发框架的支持,开发者甚至可以自己为 Struts2 开发插件,而 Servlet 的可插性支持正是基于这样的理念而产生的。使用该特性,现在我们可以在不修改已有 Web 应用的前提下,只需将按照一定格式打成的 JAR 包放到 WEB-INF/lib 目录下,即可实现新功能的扩充,不需要额外的配置。(https://www.ibm.com/developerworks/cn/java/j-lo-servlet30/#_%20%E5%8F%AF%E6%8F%92%E6%80%A7%E6%94%AF%E6%8C%81)

解决问题:

在web.xml文件的<web-app>中增加“metadata-complete=true”配置,该属性指定当前的部署描述文件是否是完全的。如果设置为 true,则容器在部署时将只依赖部署描述文件,忽略所有的注解(同时也会跳过 web-fragment.xml 的扫描,亦即禁用可插性支持,具体请看后文关于 可插性支持的讲解);如果不配置该属性,或者将其设置为 false,则表示启用注解支持(和可插性支持)

© 著作权归作者所有

共有 人打赏支持
Wilsonp
粉丝 0
博文 19
码字总数 6679
作品 0
徐汇
架构师
私信 提问
maven install项目没有配置overlay怎么也能讲war项目合并来?

我在项目配置了一个war但是没有配置overlay插件但是执行install命令的时候还是会打印下面的语句 [INFO] --- maven-war-plugin:2.2:war (default-war) @ Permission-Model --- [INFO] Packag...

joker_zhou
2014/08/28
2.5K
0
重装电脑之后移植回来的代码运行不了了!!!

原本之前的系统上是没有任何问题的 但是重装系统 重新搭建了ide sql之后,就一直用不了了! 因为后天就要比赛了 所以请求大家一定要帮帮我啊!!! 错误提示如下 2011-4-12 13:37:33 org.apa...

sswie
2012/04/12
747
3
STS 项目运行失败

重装电脑之后,下了一个ZIP形式的STS,然后导入了一个之前的程序(重装之前运行正常),然后运行的时候就是败了,详细信息如下。。。 (我新建了一个空的dynamic web application,写了个hel...

zyy7259
2012/05/14
3.6K
2
java.lang.NoSuchMethodError: org.springframewor...

今天 在做测试时 总报这个错误 , 而在tomcat里启动时都没有错误 郁闷 , 现在终于解决了 ,,原来是maven Spring jar包的问题,,,我maven里有spring3.0的包也有spring 2.5 的包 jar包冲突...

肥皂泡2
2011/11/15
0
0
spring boot 集成 birt 报表

我想在spring boot中集成birt报表,我现在程序没有发布出去,启动程序还是通过SpringApplication.run();运行,下面是我配置的ViewerServlet 在我运行SpringApplication.run();的时候,报了...

chineseY
2017/11/24
628
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 白掌柜说了卖货不卖身

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @爱漫爱 :这是一场修行分享羽肿的单曲《Moony》 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :开不开心? 开心呀, 我又不爱睡懒觉…...

小小编辑
今天
8
0
大数据教程(11.7)hadoop2.9.1平台上仓库工具hive1.2.2搭建

上一篇文章介绍了hive2.3.4的搭建,然而这个版本已经不能稳定的支持mapreduce程序。本篇博主将分享hive1.2.2工具搭建全过程。先说明:本节就直接在上一节的hadoop环境中搭建了! 一、下载apa...

em_aaron
今天
3
0
开始看《JSP&Servlet学习笔记》

1:WEB应用简介。其中1.2.1对Web容器的工作流程写得不错 2:编写Servlet。搞清楚了Java的Web目录结构,以及Web.xml的一些配置作用。特别是讲了@WebServlet标签 3:请求与响应。更细致的讲了从...

max佩恩
今天
4
0
mysql分区功能详细介绍,以及实例

一,什么是数据库分区 前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可...

吴伟祥
今天
3
0
SQL语句查询

1.1 排序 通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后。 格式: SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC; ASC 升序 (默认) DESC 降序 1.查询所有商品信息,...

stars永恒
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部