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