2016-05-16 24 views
2

嘗試使用-noserver選項啓動GWT 2.7.0的代碼服務器。當我火起來,我得到SuperDevMode GWT 2.7.0 -noserver在slf4j上不斷崩潰

java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V 
at org.eclipse.jetty.util.log.JettyAwareLogger.log(JettyAwareLogger.java:607) 
at org.eclipse.jetty.util.log.JettyAwareLogger.warn(JettyAwareLogger.java:431) 
at org.eclipse.jetty.util.log.Slf4jLog.warn(Slf4jLog.java:69) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.setFailed(AbstractLifeCycle.java:204) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:74) 
at com.google.gwt.dev.codeserver.WebServer.start(WebServer.java:140) 
at com.google.gwt.dev.codeserver.CodeServer.start(CodeServer.java:128) 
at com.google.gwt.dev.codeserver.CodeServer.main(CodeServer.java:91) 
at com.google.gwt.dev.codeserver.CodeServer.main(CodeServer.java:50) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:497) 
at com.google.gwt.dev.shell.SuperDevListener$1.run(SuperDevListener.java:84) 

啓動時不「-noserver」當然,因爲我需要調試在Tomcat服務器端的代碼,將不適合我的工作。

我正在使用Eclipse的Google插件。論點:

-noserver -logLevel INFO -war "${workspace_loc:/myproject}/target/m2e-wtp/web-resources" -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -codeServerPort 9997 com.foo.MyProject 

在牆上扔東西,我已經在我的項目的POM文件中包含

<dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>1.7.7</version> 
    </dependency> 

,並排除所有其他SLF4J文物。

(編輯),這裏是產生依賴關係樹:(太大如此,所以粘貼到引擎收錄)http://pastebin.com/qzRZzdW9

我試着從1.5.6版本到1.7.16沒有成功。

我完全難住了。如果我遺漏了任何東西,請告訴我。

+0

我覺得'-noserver'與not-'-noserver'有什麼區別是很奇怪的。另外,在將它明確添加到POM之前,您是否具有Slf4j(傳遞)依賴關係?它是否僅在Eclipse中發生,或者是否在使用'mvn gwt:run'或類似的Maven運行時發生? –

+0

是的,非常非常奇怪!所以,有slf4j的依賴關係。我明確地排除了它們,並且可以確認當我完成所有事情時,在classpath中只有一個slf4j jar。它發生在Eclipse中,當我運行mvn gwt時,它也發生:run-codeserver ... – user2458080

+0

你能分享完整的依賴列表嗎?一個可能是捆綁Slf4j,或使用不同的Maven GAV座標。 –

回答

0

托馬斯的建議與-verbose:class一起運行是一個勝利者。我使用的glassfish JSR303實現工件有我自己不熟悉的內置slf4j類。漂亮鬼鬼祟祟的!

爲Hibernate驗證器進行交易解決了該問題。

問題解決了!