4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Twitterログインでサンプルと同じはずなのにエラー発生〜解決まで

Last updated at Posted at 2018-05-29

はじめに

spring-social-twitterでTwitterログインを実装していて、サンプル紹介してくれているブログがあったので、真似して作っているところで詰まりました。

そもそもspring-social-twitter + Spring Boot ログインの例が全然見つからず、
このサンプルに行き着くまでも何個か試してうまく行かなかったので、サンプルがおかしいのではないかと思っていたのですが
数時間の格闘の末、解決できたのでその過程を書きます。

エラーとの格闘

スクリーンショット 2018-05-29 0.56.27.png

スクリーンショットで赤くなっている、ProviderSignInUtilsでエラーが発生しています。
エラーメッセージは、
[Java] The constructor ProviderSignInUtils(ConnectionFactoryLocator, UsersConnectionRepository) is undefined

と出力されていてどうやら定義されていないらしい。import間違って正しいライブラリー参照できてないのか?とか、
そもそも、そんなコンストラクター定義されていないんじゃないのか?など調べました。

サンプルと見比べてどうやらimportは正しい、リファレンスにも同じコンストラクターは定義されている。

Constructor and Description
ProviderSignInUtils(ConnectionFactoryLocator connectionFactoryLocator, UsersConnectionRepository connectionRepository)

あるものが使えない!意味がわからない。。。。。 エディターが悪いのか!と思いEclipseで試したり。
色々足掻いている中で、コンストラクターで右クリックすると定義元にいけることに気づき、みてみると・・・

エラーの原因

スクリーンショット 2018-05-29 1.07.22.png

ProviderSignInUtilsの参照元が若干違う!
エラーが発生している参照元が画面左です。たしかに定義されていないので、エディターは間違ってなかったですね。(そうだと思っていましたが・・・)
バージョンを見てみるとサンプルは2014、自分が実装しているのは2015年のを使っているようでした。

spring-social-twitterはMavenで定義していて、リリース1.1.2を使用しています。

<dependency> <groupId>org.springframework.social</groupId> <artifactId>spring-social-twitter</artifactId> <version>1.1.2.RELEASE</version> </dependency>

サンプルgradleを使用しているようで以下のようになっています。
gradleってリリース書かないんですね。バージョンわかりません。

dependencies { compile('org.springframework.boot:spring-boot-starter-social-twitter') }

とりあえず最新版にしようと思うのですが、
spring-social-twitterの公式ページを見ても記載が見つからないし、
よく使うMVNRepositoryというサイトでも1.1.2が最新版で見つからずあと一歩のところですが、
2時になり平日としては明日のことを考えるとそろそろ限界なので中断しました。

ちなみに、spring-social-twitterの公式ページには1.1.0が最新版と記載があります。
どういうこった!
スクリーンショット 2018-05-29 22.49.48.png

問題解消!

翌日、仕事終わりにダメ元で調べてみると、なんと一発で最新リリースの記載があるサイトに辿りつけました! MVNRepositoryで前日と同じサイトなのですが、
”spring social twitter maven” というクエリで検索すると古いバージョンの記載しかないページが検索結果として表示されるのですが、
"spring boot social twitter maven"と boot というキーワードをいれることにより、最新のページが検索結果として表示されるようになりました!

Google検索を信用しきっていたので、まさか前者で表示されないサイトが後者で表示されるとは・・・
検索能力がものをいう時代とはこういうことですね。

まとめ

問題は寝るとなおる!すっきり!!

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?