1

私たちは、ウェブの商品にSparkJava、Kotlin、Mustacheを使用することに決めました。 Googleの製品はGoogle(YouTube)APIと統合する必要があります。SparkJavaはいくつかのGoogle Youtube APIと連携できません

プロジェクトのすべてのエンドポイントが正しく機能していました。 (バックオフィス、CRUD操作など)そしてYouTubeの統合を開始しました。私はキックオフのためにGoogleライブラリをプロジェクトに追加する必要がありました。 は(余分なコードのいずれかを追加するのではなく、単にライブラリグーグル-のOAuthクライアント-桟橋を追加しました。)

あなたは下の私のGradleのライブラリを見つけることができます:私は特にライブラリを追加すると「

dependencies { 

    // Below library is a part of the requirements or YouTube Integration 

    compile group: 'com.google.oauth-client', name: 'google-oauth-client-jetty', version: '1.11.0-beta' 


    // And these are the others 
    compile fileTree(include: ['*.jar'], dir: 'lib') 
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" 
    compile group: 'com.sparkjava', name: 'spark-core', version: '2.7.0' 
    compile 'com.google.code.gson:gson:2.8.1' 
    compile group: 'commons-codec', name: 'commons-codec', version: '1.9' 
    compile 'com.github.jkcclemens:khttp:0.1.0' // -SNAPSHOT 
    compile 'com.beust:klaxon:0.30' 
    compile group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: '1.58' 
    compile group: 'org.hibernate', name: 'hibernate-gradle-plugin', version: '5.2.10.Final' 
    compile group: 'org.hibernate', name: 'hibernate-core', version: '5.2.10.Final' 
    compile group: 'org.hibernate', name: 'hibernate-entitymanager', version: '5.2.10.Final' 
    compile group: 'org.hibernate', name: 'hibernate-validator', version: '6.0.0.CR3' 
    compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.6' 
    compile group: 'org.hibernate', name: 'hibernate-c3p0', version: '4.1.0.Final' 
    compile 'io.sentry:sentry-log4j:1.4.0' 
    compile group: 'javax.mail', name: 'mail', version: '1.4.1' 
    compile group: 'org.apache.commons', name: 'commons-dbcp2', version: '2.0' 
    compile group: 'commons-validator', name: 'commons-validator', version: '1.4.0' 
    compile "org.testng:testng:6.9.10" 
    compile "org.apache.httpcomponents:httpclient:4.5.2" 
    compile "org.apache.httpcomponents:httpcore:4.4.4" 
    compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0' 
    compile group: 'com.sparkjava', name: 'spark-template-mustache', version: '2.5.5' 
    compile group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.25' 

    testCompile group: 'junit', name: 'junit', version: '4.11' 
} 

google-oauth-client-jetty '、バージョン:' 1.11.0-beta 'をプロジェクトに追加すると、http(GET、POST、PUTなし)経由でエンドポイントに到達することができません。私はSparkJavaのログを有効にし、以下のログに直面しています。

例えば、私は

http://localhost:3000/admin

を呼んだと結果は次のとおりです。

[qtp1864334028-15] WARN org.eclipse.jetty.server.HttpChannel - /admin 
java.lang.NoSuchMethodError: javax.servlet.http.HttpServletResponse.getHeaders(Ljava/lang/String;)Ljava/util/Collection; 
    at spark.utils.GzipUtils.checkAndWrap(GzipUtils.java:67) 
    at spark.http.matching.Body.serializeTo(Body.java:69) 
    at spark.http.matching.MatcherFilter.doFilter(MatcherFilter.java:189) 
    at spark.embeddedserver.jetty.JettyHandler.doHandle(JettyHandler.java:50) 
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1568) 
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 
    at org.eclipse.jetty.server.Server.handle(Server.java:564) 
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317) 
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) 
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279) 
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110) 
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124) 
    at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128) 
    at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222) 
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294) 
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:126) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:673) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:591) 
    at java.lang.Thread.run(Thread.java:745) 

それはそうと、メソッドを使用するのは非常に必須である「LocalServerReceiver() google-oauth-client-jettyライブラリ」にあります。

移動するには何か助けが必要です。

+0

推移的な依存関係を分析する必要があります。追加した新しいライブラリのように、別のバージョンのサーブレットライブラリが導入されたようです。依存関係ツリーを表示するには 'gradle dependencies'を実行します(新しいdepを追加する前後)。 – Renato

+0

また、ここで説明した 'gradle dependencyInsight'を試してください(https://stackoverflow.com/questions/21311727/gradle-how-to-display-where-a-dependency-conflict-arises) – Renato

答えて

0

私は問題を発見:

グーグル-のOAuthクライアント・桟橋(LocalServerReceiver)は、サーブレットAPIの古いバージョンを持っているorg.mortbay.jettyを使用していました。 (2.5。**)

LocalServerReceiverクラスを除外して変更しました。私のパッケージを入れました。そしてjettyをorg.eclipse.jettyに変更しました。

関連する問題