2017-04-20 88 views
1

将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 

我发现了一些其他职位有类似的消息,像thisthis,但情况似乎有所不同: 我不使用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.Logsun.misc.Launcher$AppClassLoader间接触发装载由

org.eclipse.jetty.webapp.WebAppContext.startContext() 

它调用一个

org.eclipse.jetty.jsp.JettyJspServlet 

实例的方法initialize

我不知道为什么需要初始化JspServlet,因为在应用程序中没有使用JSP,就我所见,只有几个Servlet。而且似乎这个冲突中涉及的所有类都包含在单个罐子gwt-dev.jar中,所以我认为没有可能通过类路径设置影响任何类加载行为。

任何想法如何解决这个问题?

回答

0

我最近升级到GWT 2.8.0时看到了这个错误。请尝试从项目中排除jetty-apache-Jsp相关的依赖项。

您可能也会看到其他码头相关问题,因此请确保您使用的码头版本与GWT 2.8.0使用的版本完全相同。

我现在在手机上,无法添加更多的细节,但我希望可以成为一个有用的方向去。如果您仍然看到问题,请添加您的评论,然后我会在笔记本电脑上查看并更新答案。

+0

我不知道任何有关码头的依赖后。但是,我现在将休假几个星期,一些同事将接管这项任务。我们决定将我们的项目减少到最低限度的项目并重新尝试迁移。我试过从GWT 2.1.1升级到2.6.1,以减少更改的数量,并得到了另一个异常,这似乎与GIN/Guice相关。 – FrankPl

+0

问题依赖不是来自您的直接依赖关系,它可能是传递性依赖关系。如果您使用gradle,您可以轻松地将其排除在所有项目之外。 –

0

刚才我碰到了这个异常将在所有在我们的项目gwt-test-utils:0.53依赖(GWT的2.8.1)

相关问题