Page 2 of 3 FirstFirst 123 LastLast
Results 11 to 20 of 21

Thread: LinkedIn access token request, 401 Unauthorized

  1. #11
    Join Date
    Aug 2004
    Posts
    1,072

    Default

    In controllers.xml, you inject a reference to a bean called "linkedinapi", but in SocialConfig, the name of the bean is linkedIn (the same as the name of the @Bean-annotated method that defines it). You should change the reference from "linkedinapi" to "linkedIn".
    Craig Walls
    Spring Social Project Lead

  2. #12
    Join Date
    Oct 2011
    Posts
    9

    Default

    i tried but get error. below is console trace:


    SEVERE: StandardWrapper.Throwable
    org.springframework.beans.factory.BeanCreationExce ption: Error creating bean with name 'org.springframework.web.servlet.mvc.annotation.De faultAnnotationHandlerMapping#0': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationExce ption: Error creating bean with name 'org.springframework.social.quickstart.HomeControl ler#0' defined in ServletContext resource [/WEB-INF/spring/appServlet/controllers.xml]: Cannot resolve reference to bean 'linkedin' while setting constructor argument; nested exception is org.springframework.beans.factory.NoSuchBeanDefini tionException: No bean named 'linkedin' is defined
    at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory.doCreateBean(AbstractAu towireCapableBeanFactory.java:527)
    at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory.createBean(AbstractAuto wireCapableBeanFactory.java:456)
    at org.springframework.beans.factory.support.Abstract BeanFactory$1.getObject(AbstractBeanFactory.java:2 93)
    at org.springframework.beans.factory.support.DefaultS ingletonBeanRegistry.getSingleton(DefaultSingleton BeanRegistry.java:222)
    at org.springframework.beans.factory.support.Abstract BeanFactory.doGetBean(AbstractBeanFactory.java:290 )
    at org.springframework.beans.factory.support.Abstract BeanFactory.getBean(AbstractBeanFactory.java:192)
    at org.springframework.beans.factory.support.DefaultL istableBeanFactory.preInstantiateSingletons(Defaul tListableBeanFactory.java:585)
    at org.springframework.context.support.AbstractApplic ationContext.finishBeanFactoryInitialization(Abstr actApplicationContext.java:895)
    at org.springframework.context.support.AbstractApplic ationContext.refresh(AbstractApplicationContext.ja va:425)
    at org.springframework.web.servlet.FrameworkServlet.c reateWebApplicationContext(FrameworkServlet.java:4 67)
    at org.springframework.web.servlet.FrameworkServlet.c reateWebApplicationContext(FrameworkServlet.java:4 83)
    at org.springframework.web.servlet.FrameworkServlet.i nitWebApplicationContext(FrameworkServlet.java:358 )
    at org.springframework.web.servlet.FrameworkServlet.i nitServletBean(FrameworkServlet.java:325)
    at org.springframework.web.servlet.HttpServletBean.in it(HttpServletBean.java:127)
    at javax.servlet.GenericServlet.init(GenericServlet.j ava:212)
    at org.apache.catalina.core.StandardWrapper.loadServl et(StandardWrapper.java:1173)
    at org.apache.catalina.core.StandardWrapper.allocate( StandardWrapper.java:809)
    at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:129)
    at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run( JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)
    Caused by: org.springframework.beans.factory.BeanCreationExce ption: Error creating bean with name 'org.springframework.social.quickstart.HomeControl ler#0' defined in ServletContext resource [/WEB-INF/spring/appServlet/controllers.xml]: Cannot resolve reference to bean 'linkedin' while setting constructor argument; nested exception is org.springframework.beans.factory.NoSuchBeanDefini tionException: No bean named 'linkedin' is defined
    at org.springframework.beans.factory.support.BeanDefi nitionValueResolver.resolveReference(BeanDefinitio nValueResolver.java:328)
    at org.springframework.beans.factory.support.BeanDefi nitionValueResolver.resolveValueIfNecessary(BeanDe finitionValueResolver.java:106)
    at org.springframework.beans.factory.support.Construc torResolver.resolveConstructorArguments(Constructo rResolver.java:630)
    at org.springframework.beans.factory.support.Construc torResolver.autowireConstructor(ConstructorResolve r.java:148)
    at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory.autowireConstructor(Abs tractAutowireCapableBeanFactory.java:1003)
    at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory.createBeanInstance(Abst ractAutowireCapableBeanFactory.java:907)
    at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory.doCreateBean(AbstractAu towireCapableBeanFactory.java:485)
    at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory.createBean(AbstractAuto wireCapableBeanFactory.java:456)
    at org.springframework.beans.factory.support.Abstract BeanFactory$1.getObject(AbstractBeanFactory.java:2 93)
    at org.springframework.beans.factory.support.DefaultS ingletonBeanRegistry.getSingleton(DefaultSingleton BeanRegistry.java:222)
    at org.springframework.beans.factory.support.Abstract BeanFactory.doGetBean(AbstractBeanFactory.java:290 )
    at org.springframework.beans.factory.support.Abstract BeanFactory.getBean(AbstractBeanFactory.java:192)
    at org.springframework.context.support.AbstractApplic ationContext.getBean(AbstractApplicationContext.ja va:1075)
    at org.springframework.web.servlet.handler.AbstractUr lHandlerMapping.registerHandler(AbstractUrlHandler Mapping.java:383)
    at org.springframework.web.servlet.handler.AbstractUr lHandlerMapping.registerHandler(AbstractUrlHandler Mapping.java:362)
    at org.springframework.web.servlet.handler.AbstractDe tectingUrlHandlerMapping.detectHandlers(AbstractDe tectingUrlHandlerMapping.java:82)
    at org.springframework.web.servlet.handler.AbstractDe tectingUrlHandlerMapping.initApplicationContext(Ab stractDetectingUrlHandlerMapping.java:58)
    at org.springframework.context.support.ApplicationObj ectSupport.initApplicationContext(ApplicationObjec tSupport.java:119)
    at org.springframework.web.context.support.WebApplica tionObjectSupport.initApplicationContext(WebApplic ationObjectSupport.java:72)
    at org.springframework.context.support.ApplicationObj ectSupport.setApplicationContext(ApplicationObject Support.java:73)
    at org.springframework.context.support.ApplicationCon textAwareProcessor.invokeAwareInterfaces(Applicati onContextAwareProcessor.java:109)
    at org.springframework.context.support.ApplicationCon textAwareProcessor.postProcessBeforeInitialization (ApplicationContextAwareProcessor.java:88)
    at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory.applyBeanPostProcessors BeforeInitialization(AbstractAutowireCapableBeanFa ctory.java:394)
    at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory.initializeBean(Abstract AutowireCapableBeanFactory.java:1413)
    at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory.doCreateBean(AbstractAu towireCapableBeanFactory.java:519)
    ... 26 more
    Caused by: org.springframework.beans.factory.NoSuchBeanDefini tionException: No bean named 'linkedin' is defined
    at org.springframework.beans.factory.support.DefaultL istableBeanFactory.getBeanDefinition(DefaultListab leBeanFactory.java:529)
    at org.springframework.beans.factory.support.Abstract BeanFactory.getMergedLocalBeanDefinition(AbstractB eanFactory.java:1094)
    at org.springframework.beans.factory.support.Abstract BeanFactory.doGetBean(AbstractBeanFactory.java:276 )
    at org.springframework.beans.factory.support.Abstract BeanFactory.getBean(AbstractBeanFactory.java:196)
    at org.springframework.beans.factory.support.Abstract BeanFactory.doGetBean(AbstractBeanFactory.java:268 )
    at org.springframework.beans.factory.support.Abstract BeanFactory.getBean(AbstractBeanFactory.java:192)
    at org.springframework.beans.factory.support.BeanDefi nitionValueResolver.resolveReference(BeanDefinitio nValueResolver.java:322)
    ... 50 more

  3. #13
    Join Date
    Aug 2004
    Posts
    1,072

    Default

    There may be other issues at play here, but the one noticeable problem is that you're wiring in a reference to "linkedin" while the bean's ID is "linkedIn" (notice the capitalization of the 'I').
    Craig Walls
    Spring Social Project Lead

  4. #14
    Join Date
    Oct 2011
    Posts
    9

    Default

    Thanks, making reference name to linkedIn solved some part of problem. Now when i try connect to linkedIn in application it gives following error. I feel i get this error because it does not shows page to allow access for linkedIn, while it shows for twitter and facebook. May i please know how it comes to know that it has to connect using which URL?

    Oct 19, 2011 10:43:51 AM org.apache.catalina.core.StandardWrapperValve invoke
    SEVERE: Servlet.service() for servlet appServlet threw exception
    java.lang.IllegalAccessError: tried to access class org.springframework.social.oauth1.ProtectedResourc eClientFactory from class org.springframework.social.linkedin.api.impl.Linke dInTemplate
    at org.springframework.social.linkedin.api.impl.Linke dInTemplate.<init>(LinkedInTemplate.java:47)
    at org.springframework.social.linkedin.connect.Linked InServiceProvider.getApi(LinkedInServiceProvider.j ava:38)
    at org.springframework.social.linkedin.connect.Linked InServiceProvider.getApi(LinkedInServiceProvider.j ava:27)
    at org.springframework.social.connect.support.OAuth1C onnection.initApi(OAuth1Connection.java:94)
    at org.springframework.social.connect.support.OAuth1C onnection.<init>(OAuth1Connection.java:56)
    at org.springframework.social.connect.support.OAuth1C onnectionFactory.createConnection(OAuth1Connection Factory.java:59)
    at org.springframework.social.connect.web.ConnectSupp ort.completeConnection(ConnectSupport.java:113)
    at org.springframework.social.connect.web.ProviderSig nInController.oauth1Callback(ProviderSignInControl ler.java:145)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.web.bind.annotation.support.Ha ndlerMethodInvoker.invokeHandlerMethod(HandlerMeth odInvoker.java:176)
    at org.springframework.web.servlet.mvc.annotation.Ann otationMethodHandlerAdapter.invokeHandlerMethod(An notationMethodHandlerAdapter.java:436)
    at org.springframework.web.servlet.mvc.annotation.Ann otationMethodHandlerAdapter.handle(AnnotationMetho dHandlerAdapter.java:424)
    at org.springframework.web.servlet.DispatcherServlet. doDispatch(DispatcherServlet.java:790)
    at org.springframework.web.servlet.DispatcherServlet. doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:669)
    at org.springframework.web.servlet.FrameworkServlet.d oGet(FrameworkServlet.java:574)
    at javax.servlet.http.HttpServlet.service(HttpServlet .java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet .java:717)
    at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:206)
    at org.springframework.web.filter.HiddenHttpMethodFil ter.doFilterInternal(HiddenHttpMethodFilter.java:7 7)
    at org.springframework.web.filter.OncePerRequestFilte r.doFilter(OncePerRequestFilter.java:76)
    at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:206)
    at org.springframework.web.filter.CharacterEncodingFi lter.doFilterInternal(CharacterEncodingFilter.java :88)
    at org.springframework.web.filter.OncePerRequestFilte r.doFilter(OncePerRequestFilter.java:76)
    at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run( JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)


    -------------------------------------------------------

    @Controller
    public class HomeController {

    private final LinkedInApi linkedinapi;






    @Inject
    public HomeController(LinkedInApi linkedinapi) {
    this.linkedinapi = linkedinapi;
    }

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String home(Model model) {
    System.out.println("Home controller : home");
    model.addAttribute("profile", linkedinapi.getUserProfile());
    return "home";
    }
    }

    -------------------------------------------------------------------
    to display linkedIn profile:
    <h3>Your LinkedIn Profile</h3>
    <p>Hello, <c:out value="${profile.firstName}"/>!</p>
    <img src="<c:out value="${profile.profilePictureUrl}"/>" alt="Seems your profile image is not accessible" title=""/>
    <dl>
    <dt>LinkedIn ID:</dt>
    <dd><a href="${profile.standardProfileUrl}" target="_blank"><c:out value="${profile.id}"/></a></dd>
    <dt>Name:</dt>
    <dd><c:out value="${profile.firstName}"/>&nbsp;<c:out value="${profile.lastName}"/></dd>
    <dt>Industry:</dt>
    <dd><c:out value="${profile.industry}"/></dd>
    <dt>Headline:</dt>
    <dd><c:out value="${profile.headline}"/></dd>
    </dl>
    Last edited by gauravj; Oct 19th, 2011 at 02:09 AM.

  5. #15
    Join Date
    Oct 2011
    Posts
    9

    Default

    please find as attached code for twitter and linkedIn. twitter works fine. linkedIn does not show allow access page, and gives Illegal access error
    Attached Files Attached Files

  6. #16
    Join Date
    Aug 2004
    Posts
    1,072

    Default

    I believe the problem here is a mixed up set of versions between Spring Social Core and Spring Social LinkedIn. Which versions of each are you using?

    The gist of it is that you're probably using a milestone release of LinkedIn with a 1.0.0 release of Spring Social Core. In that milestone release, LinkedInTemplate directly used ProtectedResourceClientFactory, but that is no longer public in Spring Social 1.0.0. Instead, LinkedInTemplate (and other API bindings for that matter) should extend either AbstractOAuth1ApiBinding or AbstractOAuth2ApiBinding which will work with ProtectedResourceClientFactory without exposing that class directly to the API binding.

    The more recently snapshot builds of Spring Social LinkedIn are updated to match up with the latest in Spring Social Core. Using the 1.0.0.BUILD-SNAPSHOT version of Spring Social LinkedIn will probably clear up this problem. There hasn't been another milestone release of the LinkedIn module to include these changes, because there hasn't been any significant milestone-worthy improvements to that module (however, it may be worthwhile to push a milestone just to avoid these kinds of mismatch problems).
    Craig Walls
    Spring Social Project Lead

  7. #17
    Join Date
    Oct 2011
    Posts
    9

    Default

    If Possible can you please modify the pom with working code.

    changed POM as below:
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.springframework.social</groupId>
    <artifactId>spring-social-quickstart-30x</artifactId>
    <name>Spring Social Quickstart - Spring 3.0.x Compatible</name>
    <packaging>war</packaging>
    <version>1.0.0</version>
    <properties>
    <java-version>1.6</java-version>
    <org.springframework.social-version>1.0.1.BUILD-SNAPSHOT</org.springframework.social-version>
    <org.springframework.social.linkedin-version>1.0.0</org.springframework.social.linkedin-version>
    <org.springframework-version>3.0.6.RELEASE</org.springframework-version>
    <org.springframework.security.crypto-version>3.1.0.RC2.crypto</org.springframework.security.crypto-version>
    </properties>
    <dependencies>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>${org.springframework-version}</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${org.springframework-version}</version>
    </dependency>
    <dependency>
    <groupId>org.springframework.social</groupId>
    <artifactId>spring-social-core</artifactId>
    <version>${org.springframework.social-version}</version>
    </dependency>
    <dependency>
    <groupId>org.springframework.social</groupId>
    <artifactId>spring-social-web</artifactId>
    <version>${org.springframework.social-version}</version>
    </dependency>
    <dependency>
    <groupId>org.springframework.social</groupId>
    <artifactId>spring-social-linkedin</artifactId>
    <version>${org.springframework.social.linkedin-version}</version>
    </dependency>
    <dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-crypto</artifactId>
    <version>${org.springframework.security.crypto-version}</version>
    </dependency>
    <dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>1.3.159</version>
    </dependency>
    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
    </dependency>
    <dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.1</version>
    <scope>provided</scope>
    </dependency>
    <dependency>
    <groupId>javax.servlet.jsp.jstl</groupId>
    <artifactId>jstl-api</artifactId>
    <version>1.2</version>
    </dependency>
    <dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>jstl-impl</artifactId>
    <version>1.2</version>
    </dependency>
    <!-- CGLIB, only required and used for @Configuration usage: could be removed in future release of Spring -->
    <dependency>
    <groupId>cglib</groupId>
    <artifactId>cglib-nodep</artifactId>
    <version>2.2</version>
    </dependency>
    </dependencies>
    <repositories>
    <repository>
    <id>org.springframework.maven.release</id>
    <name>Spring Maven Release Repository</name>
    <url>http://maven.springframework.org/release</url>
    <releases><enabled>true</enabled></releases>
    <snapshots><enabled>false</enabled></snapshots>
    </repository>
    <!-- For testing against latest Spring snapshots -->
    <repository>
    <id>org.springframework.maven.snapshot</id>
    <name>Spring Maven Snapshot Repository</name>
    <url>http://maven.springframework.org/snapshot</url>
    <releases><enabled>false</enabled></releases>
    <snapshots><enabled>true</enabled></snapshots>
    </repository>
    <!-- For developing against latest Spring milestones -->
    <repository>
    <id>org.springframework.maven.milestone</id>
    <name>Spring Maven Milestone Repository</name>
    <url>http://maven.springframework.org/milestone</url>
    <snapshots><enabled>false</enabled></snapshots>
    </repository>
    </repositories>
    <build>
    <resources>
    <resource>
    <directory>src/main/java</directory>
    </resource>
    </resources>
    <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
    <source>${java-version}</source>
    <target>${java-version}</target>
    </configuration>
    </plugin>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
    <configuration>
    <warName>spring-social-quickstart-30x</warName>
    </configuration>
    </plugin>
    <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>tomcat-maven-plugin</artifactId>
    <version>1.1</version>
    </plugin>
    </plugins>
    </build>
    </project>

    gives error during maven package

  8. #18
    Join Date
    Aug 2004
    Posts
    1,072

    Default

    This is your pom.xml file (our quickstart doesn't have LinkedIn in it), so you'll have to change it. Just change the org.springframework.social.linkedin-version propert from "1.0.0" to "1.0.0.BUILD-SNAPSHOT". (It shouldn't work at all the way you have it now...there isn't a 1.0.0 version.)
    Craig Walls
    Spring Social Project Lead

  9. #19
    Join Date
    Oct 2011
    Posts
    9

    Default

    have already tried 1.0.0.BUILD-SNAPSHOT before the previous post. It can not find LinkedInAPI class

  10. #20
    Join Date
    Aug 2004
    Posts
    1,072

    Default

    The LinkedInAPI interface is now named simply "LinkedIn". You'll have to adjust your SocialConfig accordingly.
    Craig Walls
    Spring Social Project Lead

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •