2

私はSpring Frameworkの初心者で、Facebookからデータを取得する簡単なWebアプリケーションを作成するためにSpring Socialを試したかったのです。このため私はSpring Socialsの公式 "スタートガイド"に続き、 "Facebookデータへのアクセス"と呼ばれました。Spring Social 3.0.0.M1のorg.springframework.social.connect.ConnectionRepositoryクラスで何が起こったのですか?

私が遭遇した最初の問題は、春社会の最新の公式バージョンであるように思わ春社会バージョン2.0.3.RELEASEは、FacebookのAPIのバージョン2.8をサポートしていないということでした(したがって、私与えます次のエラー:「(#12)バイオフィールドはバージョンv2.8以降では推奨されていません」)。私はdevelopers.facebook.comでFacebookアプリを作ったので、昨日は以前のAPIバージョンにアクセスできないと思われます。

googleで解決策を探しましたが、バージョン3.0.0.M1がこの問題を解決するはずのmavenリポジトリで利用できるようです。しかし、私の.pomファイルの設定を変更して、代わりにこのバージョンを使用すると、コンパイラはクラスConnectionRepositoryをもう見つけられなくなりました。実際にはパッケージ全体org.springframework.social.connectが欠けているようです。

私はガイド(https://spring.io/guides/gs/accessing-facebook/)からコピーしたコードは、followigようになります。

import org.springframework.social.connect.ConnectionRepository; 
import org.springframework.social.facebook.api.Facebook; 
import org.springframework.social.facebook.api.PagedList; 
import org.springframework.social.facebook.api.Post; 
import org.springframework.stereotype.Controller; 
import org.springframework.ui.Model; 
import org.springframework.web.bind.annotation.GetMapping; 
import org.springframework.web.bind.annotation.RequestMapping; 

@Controller 
@RequestMapping("/") 
public class HelloController { 

    private Facebook facebook; 
    private ConnectionRepository connectionRepository; 

    public HelloController(Facebook facebook, ConnectionRepository connectionRepository) { 
     this.facebook = facebook; 
     this.connectionRepository = connectionRepository; 
    } 

    @GetMapping 
    public String helloFacebook(Model model) { 
     if (connectionRepository.findPrimaryConnection(Facebook.class) == null) { 
      return "redirect:/connect/facebook"; 
     } 

     model.addAttribute("facebookProfile", facebook.userOperations().getUserProfile()); 
     PagedList<Post> feed = facebook.feedOperations().getFeed(); 
     model.addAttribute("feed", feed); 
     return "hello"; 
    } 

} 

はConnectionRepository非推奨となりました削除されましたか?その場合、代わりに何か他のものを使用すべきですか?または私は何かを逃している?名「helloController」が作成中にエラーが発生しまし豆:

org.springframework.beans.factory.BeanCreationException:解像度を宣言したコンストラクタの豆に

だけでアプリケーションを起動するときに私が代わりにエラーを以下ConnectionRepositoryへのすべての参照を与える削除ClassLoader [[email protected]]の[hello.HelloController]クラスが失敗しました。ネストされた例外がjava.lang.NoClassDefFoundErrorがある:ORG/springframework /社会的/ ApiBinding

コードは以下のようになります。この場合:

package hello; 

import org.springframework.social.facebook.api.Facebook; 
import org.springframework.social.facebook.api.PagedList; 
import org.springframework.social.facebook.api.Post; 
import org.springframework.stereotype.Controller; 
import org.springframework.ui.Model; 
import org.springframework.web.bind.annotation.GetMapping; 
import org.springframework.web.bind.annotation.RequestMapping; 

@Controller 
@RequestMapping("/") 
public class HelloController { 

    private Facebook facebook; 

    public HelloController(Facebook facebook) { 
     this.facebook = facebook; 

    } 

    @GetMapping 
    public String helloFacebook(Model model) { 


     model.addAttribute("facebookProfile", facebook.userOperations().getUserProfile()); 
     PagedList<Post> feed = facebook.feedOperations().getFeed(); 
     model.addAttribute("feed", feed); 
     return "hello"; 
    } 

} 

答えて

7

アーティファクトのためのソースコードのGitの歴史を見た後、 spring-social-facebook(GitHubから入手しました)ConnectionRepositoryのトレースは一切見つかりませんでした。

mvnrepository.comでそれをチェックアウトした後、私は、依存関係としてそのバージョンアーティファクトの2.0.3.RELEASEを使用した場合、スプリングを-社会のFacebookを実現し、より多くのそれよりも、Mavenのでdowloadedのjarファイル、バージョン3.0.0.M1を依存関係として使用していました。不足しているjarファイルの中には、アプリケーションを起動して実行するために必要な2つの成果物がありました。彼らはスプリングソーシャルコアスプリングソーシャル設定でした。

最後に、私は春・社会的・コアのjarファイルにConnectionRepositoryを見つけました。

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-thymeleaf</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.social</groupId> 
     <artifactId>spring-social-facebook</artifactId> 
    </dependency> 
</dependencies> 

へ:

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-thymeleaf</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.social</groupId> 
     <artifactId>spring-social-facebook</artifactId> 
     <version>3.0.0.M1</version> 
     </dependency> 
    <dependency> 
     <groupId>org.springframework.social</groupId> 
     <artifactId>spring-social-core</artifactId> 
     <version>2.0.0.M2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.social</groupId> 
     <artifactId>spring-social-config</artifactId> 
     <version>2.0.0.M2</version> 
    </dependency> 
</dependencies> 

これらを

だから私は最後に行うために必要なものを以下だったガイドから元ポンポンファイルに依存関係を変更することでした変更により、私はアプリケーションを起動し、いくつかのFacebookのデータを取得することができました。

+0

非常に有益です。私は最初に私のPOMにそれを追加する必要がありました、3.0.0.M1は春のマイルストーンリポジトリであることが判明: '<リポジトリ> 春のマイルストーンリポジトリ http://repo.spring.io /マイルストーン/ ' – acdhirr

関連する問題