2015-09-13 3 views
0

Я пытаюсь запустить простую программу Spring Social для входа в учетную запись Facebook. Но экземпляр Facebook не создается и отображается исключение nullpointer.Экземпляр Facebook не создается в Spring Social

@Controller 
@RequestMapping("/fb") 
public class HelloFBController { 

    @Autowired 
    private Facebook facebook; 

    @RequestMapping(method = RequestMethod.GET) 
    public String helloFacebook(Model model) { 
     if (!facebook.isAuthorized()) { 
      return "redirect:/connect/facebook"; 
     } 

     model.addAttribute("feed", facebook.feedOperations().getFeed()); 

     return "hellofb"; 
    } 
} 

Тогда

@Configuration 
public class SocialConfig { 
    @Bean 
    public ConnectionFactoryLocator connectionFactoryLocator() { 
     ConnectionFactoryRegistry registry = new ConnectionFactoryRegistry(); 

     registry.addConnectionFactory(new FacebookConnectionFactory(
      environment.getProperty("facebook.appId"), 
      environment.getProperty("facebook.appSecret"))); 
     return registry; 
    } 

    @Inject 
    private Environment environment; 
} 

Затем application.properties файлу

spring.social.facebook.appId=XXXXXXXXXXXX 
spring.social.facebook.appSecret=XXXXXXXXXXXXXXXXXXX 

Тогда pom.xml является

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

ли я что-то отсутствует. Когда я запускаю это приложение с помощью Spring Boot, я получаю исключение в контроллере ниже. Я пытаюсь получить доступ к приложению на локальном хосте: 8080/фб

java.lang.NullPointerException: null 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) 
    at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133) 
    at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121) 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) 
    at $Proxy42.isAuthorized(Unknown Source) 
    at net.javabeat.spring.social.web.HelloFBController.helloFacebook(HelloFBController.java:19) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvok 

ответ

0

Вы пропускаете зависимость facebook, смотрите ниже:

ссылка
<dependency> 
     <groupId>org.springframework.social</groupId> 
     <artifactId>spring-social-facebook</artifactId> 
    </dependency> 

Следуйте ниже для получения дополнительной информации:

Accessing Facebook Data

+0

Нет. У меня есть, что весна зависит от загрузки – Krishna

0

У вас есть этот проект в репозитории Git где-нибудь, где я мог бы попробовать, не заново воссоздавая пример из записи блога, из которой вы его вытащили?

Я также замечаю, что ваши зависимости от Maven являются справочными загрузками Spring Spring для Spring Social Facebook, но вы явно настраиваете локатор заводских соединений (и ничего больше). Следовательно, если вы используете Spring Boot, то ваша явная конфигурация, вероятно, отключена автоматической настройкой, предоставляемой Spring Boot. Удалите SocialConfig и посмотрите, что произойдет.

+0

Нет. У меня нет этого в git – Krishna

+0

Есть ли ошибка в 1.2.5 весенней загрузки. Он не работает после всех вариантов, которые я пробовал – Krishna

0

Вы можете изменить код для обходного пути, чтобы заставить его работать. В это время facebook не подключаемом или вводят так он получает NPE:

try { 
      if (!facebook.isAuthorized()) { 
       return "redirect:/connect/facebook"; 
      } 
     } catch (Exception e) { 
      return "redirect:/connect/facebook"; 
     } 

Кроме того, вы, возможно, придется добавить spring.social.auto_connection_views = верно, если вы не используете пользовательский вид.

 Смежные вопросы

  • Нет связанных вопросов^_^