將gwt從版本2.1.1升級到2.8.0,我得到了錯誤消息將gwt從2.1.1升級到2.8.0:ServiceConfigurationError:org.apache.juli.logging.Log:Provider org.eclipse.jetty.apache.jsp.JuliLog不是子類型
2017-04-20 12:59:19.551:WARN:oejuc.AbstractLifeCycle:main: FAILED [email protected]{/,file:/C:/Users/xxx/.IntelliJIdea2017.1/system/gwt/xxx.97baa614/xxx.fdf824a8/run/www/,STARTING}{C:\Users\xxx\.IntelliJIdea2017.1\system\gwt\xxx.97baa614\xx.fdf824a8\run\www}: java.util.ServiceConfigurationError: org.apache.juli.logging.Log: Provider org.eclipse.jetty.apache.jsp.JuliLog not a subtype
java.util.ServiceConfigurationError: org.apache.juli.logging.Log: Provider org.eclipse.jetty.apache.jsp.JuliLog not a subtype
我發現了一些其他職位有類似的消息,像this或this,但情況似乎有所不同: 我不使用Maven或螞蟻,只是純粹的IntelliJ ,我沒有參考任何Tomcat庫,並且我沒有意識到我們的應用程序中有任何JSP。
我發現通過調試,首先是類加載器com.google.gwt.dev.shell.jetty.Jettylauncher$WebAppContextWithReload$WebAppClassLoaderExtension
加載類org.eclipse.jetty.apache.jsp.JuliLog
包括接口org.apache.juli.logging.Log
。
然後,後接口org.apache.juli.logging.Log
由sun.misc.Launcher$AppClassLoader
間接觸發裝載由
org.eclipse.jetty.webapp.WebAppContext.startContext()
它調用一個
org.eclipse.jetty.jsp.JettyJspServlet
實例的方法initialize
。
我不知道爲什麼需要初始化JspServlet,因爲在應用程序中沒有使用JSP,就我所見,只有幾個Servlet。而且似乎這個衝突中涉及的所有類都包含在單個罐子gwt-dev.jar
中,所以我認爲沒有可能通過類路徑設置影響任何類加載行爲。
任何想法如何解決這個問題?
我不知道任何有關碼頭的依賴後。但是,我現在將休假幾個星期,一些同事將接管這項任務。我們決定將我們的項目減少到最低限度的項目並重新嘗試遷移。我試過從GWT 2.1.1升級到2.6.1,以減少更改的數量,並得到了另一個異常,這似乎與GIN/Guice相關。 – FrankPl
問題依賴不是來自您的直接依賴關係,它可能是傳遞性依賴關係。如果您使用gradle,您可以輕鬆地將其排除在所有項目之外。 –