启动Jetty应用程序,但“java.lang.IllegalStateException:Duplicate fragment name”

时间:2017-02-10 00:13:30

标签: spring gradle jetty

抱歉,如果重复。

我正在使用gradle构建我的.war文件并使用Jetty启动我的应用程序。但是我看到了这条错误消息

java.lang.IllegalStateException: Duplicate fragment name: spring_web for jar:file:/private/var/folders/r7/z7yqbhx10wl9kyw738crggdd0zwztx/T/jetty-0.0.0.0-8080-application-1.0.war-_pplication-1.0-any-/webapp/WEB-INF/lib/spring-web-4.1.9.RELEASE.jar!/META-INF/web-fragment.xml and jar:file:/private/var/folders/r7/z7yqbhx10wl9kyw738crggdd0zwztx/T/jetty-0.0.0.0-8080-cpplication-1.0.war-_pplication-1.0-any-/webapp/WEB-INF/lib/spring-web-4.1.9.RELEASE.jar!/META-INF/web-fragment.xml

我已经在互联网上做了一些研究,但所有人都在谈论jetty-maven-plugin,解决方法是将"<allowDuplicateFragmentNames>true</allowDuplicateFragmentNames>"添加到webAppConfig。但在我的应用程序中,我没有webAppConfig。这只适用于Maven吗?如果我使用Gradle,如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以将jetty.xml放在WEB-INF

的jetty.xml

<?xml version="1.0"  encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC
    "-//Mort Bay Consulting//DTD Configure//EN"
    "http://www.eclipse.org/jetty/configure_9_0.dtd">

<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="allowDuplicateFragmentNames">true</Set>
</Configure>

在WEB-INF / web.xml中,查找标记(应位于顶部),并修改属性以匹配这些值:

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/j2ee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
metadata-complete="true"
..
>