Метод фабрики 'connectionFactoryLocator' вызвал исключение (IllegalArgumentException) Свойство clientId не может быть пустым - PullRequest
0 голосов
/ 16 мая 2019
  • Из первых рук я пытаюсь создать социальную интеграцию в Facebook с Spring Framework {4.1.2} и Spring social {1.1.6}.И проект Spring-MVC, а не Spring-Boot.

Журнал ошибок: ...

org.springframework.web.servlet.DispatcherServlet.initServletBean Сбой инициализации контекста org.springframework.beans.factory.BeanCreationException: Ошибкасоздание компонента с именем 'connectionFactoryLocator', определенного в ресурсе пути к классу [org / springframework / social / config / annotation / SocialConfiguration.class]: создание экземпляра компонента с помощью метода фабрики не выполнено;вложенным исключением является org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр [org.springframework.social.connect.ConnectionFactoryLocator]: фабричный метод 'connectionFactoryLocator' вызвал исключение;вложенное исключение - java.lang.IllegalArgumentException: свойство clientId не может иметь значение null в org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod (ConstructorResolver.java:602ansTact.Fact.Wef.File.File.File.File.File.File.File.File.File.File.File.File.File.File.File.Ob(AbstractAutowireCapableBeanFactory.java:1113) при org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance (AbstractAutowireCapableBeanFactory.java:1008) при org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:505) вorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:476) в org.springframework.beans.factory.support.Ab Abstract.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:229) в org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:298) в org.springframework.beans.factory.support.AbstractBeanFactFact.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons (DefaultListableBeanFactory.java:762) в org.springframework.context.support.(AbstractApplicationContext.java:480) в org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext (FrameworkServlet.java:663) в org.springframework.web.servlet.FrameworkSerting.rag.jpgweb.servlet.FrameworkServlet.createWebApplicationContext (FrameworkServlet.java:677) в org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext (FrameworkServlet.java:548) в org.springframework.web.servlet..GenericServlet.init (GenericServlet.java:158) в org.apache.catalina.core.StandardWrapper.initServlet (StandardWrapper.java:1144) в org.apache.catalina.core.StandardWrapper.loadServlet atWW: 10WWorg.apache.catalina.core.StandardWrapper.allocate (StandardWrapper.java:773) по адресу org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:133) по адресу org.apache.catalina.core.tealta (StandardContextValve.java:96) в org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:493) в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:1ache в или org).valves.ErrorReportValve.invoke (ErrorReportValve.java:81)в org.apache.catalina.valves.AbstractAccessLogValve.invoke (AbstractAccessLogValve.java:650) в org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:87) в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:342) в org.apache.coyote.http11.Http11Processor.service (Http11Processor.java:800) в org.apache.coyote.AbstractProcessorLight.process (AbstractProcessorLight.java:66) в org.apache.coyote.AbstractProtocol $ ConnectionHandler.process (AbstractProtocol.java:806) в org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java:1498) в org.apache.tomcat.util.net.SocketProcessorBase.run (SocketProcessorBase.java:49) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) в org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) на java.lang.Thread.run (Thread.java:745) Вызвано: org.springframework.beans.BeanInstantiationException: Не удалось создать экземпляр [org.springframework.social.connect.ConnectionFactoryLocator]: метод фабрики 'connectionFactoryLocator' вызвал исключение; Вложенное исключение - java.lang.IllegalArgumentException: свойство clientId не может быть пустым в org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate (SimpleInstantiationStrategy.java:189) в org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod (ConstructorResolver.java:591) ... еще 38 Вызывается: java.lang.IllegalArgumentException: свойство clientId не может быть пустым в org.springframework.util.Assert.notNull (Assert.java:112) в org.springframework.social.oauth2.OAuth2Template. (OAuth2Template.java:82) в org.springframework.social.oauth2.OAuth2Template. (OAuth2Template.java:70) на org.springframework.social.facebook.connect.FacebookOAuth2Template. (FacebookOAuth2Template.java:38) на org.springframework.social.facebook.connect.FacebookServiceProvider. (FacebookServiceProvider.java:38) на org.springframework.social.facebook.connect.FacebookConnectionFactory. (FacebookConnectionFactory.java:45) в org.springframework.social.facebook.connect.FacebookConnectionFactory. (FacebookConnectionFactory.java:35) в com.insight.config.SocialConfig.addConnectionFactories (SocialConfig.java:37) в org.springframework.social.config.annotation.SocialConfiguration.connectionFactoryLocator (SocialConfiguration.java:58) в org.springframework.social.config.annotation.SocialConfiguration $$ EnhancerBySpringCGLIB $$ d9fc7f17.CGLIB $ connectionFactoryLocator $ 0 () в org.springframework.social.config.annotation.SocialConfiguration $$ EnhancerBySpringCGLIB $$ d9fc7f17 $$ FastClassBySpringCGLIB $$ 5acd4564.invoke () в org.springframework.cglib.proxy.MethodProxy.invokeSuper (MethodProxy.java:228) в org.springframework.context.annotation.ConfigurationClassEnhancer $ BeanMethodInterceptor.intercept (ConfigurationClassEnhancer.java:312) в org.springframework.social.config.annotation.SocialConfiguration $$ EnhancerBySpringCGLIB $$ d9fc7f17.connectionFactoryLocator () at sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.lang.reflect.Method.invoke (Method.java:498) в org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate (SimpleInstantiationStrategy.java:162) ... еще 39

Код, в котором сообщается о возможной ошибке ... environment.getProperty ("spring.social.facebook.app-secret");

@Configuration
@EnableSocial
public class SocialConfig implements SocialConfigurer{

@Inject
private DataSource dataSource;

@Override
public void addConnectionFactories(ConnectionFactoryConfigurer connectionFactoryConfigurer, Environment environment) {
    connectionFactoryConfigurer.addConnectionFactory(new FacebookConnectionFactory(
            environment.getProperty("spring.social.facebook.app-id"),
            environment.getProperty("spring.social.facebook.app-secret")
    ));
}

@Override
public UserIdSource getUserIdSource() {
    return new AuthenticationNameUserIdSource();
}

@Override
public UsersConnectionRepository getUsersConnectionRepository(ConnectionFactoryLocator connectionFactoryLocator) {
    return new JdbcUsersConnectionRepository(dataSource, connectionFactoryLocator, Encryptors.noOpText()
    );
}


@Bean
public ConnectController connectController(ConnectionFactoryLocator connectionFactoryLocator, ConnectionRepository connectionRepository){
    return new ConnectController(connectionFactoryLocator, connectionRepository);
}

}

envorinment.getProperty () успешно ссылается на «файл свойств». Здесь нет проблем

...