I'd make a copy of SampleModule.java and use that instead of the method
outlined below (where you extend SocialApiGuiceModule..)

On Mon, Jun 29, 2009 at 6:55 AM, pablo fernandez <fernandezpabl...@gmail.com
> wrote:

> Hi,
>
> I'm developing a shinding database backed site. I downloaded shindig for
> Java recently, and tried to modify the code in order to make it work with a
> different data store.
>
> I started small, implementing just PersonService, but I always get this
> exception:
>
> com.google.inject.CreationException: Guice configuration errors:
>
> 1) Error at
>
> org.apache.shindig.social.core.oauth.OAuthAuthenticationHandler.<init>(OAuthAuthenticationHandler.java:64):
>  Error while injecting at
>
> org.apache.shindig.social.core.oauth.AuthenticationHandlerProvider.<init>(AuthenticationHandlerProvider.java:36):
> Binding to org.apache.shindig.social.opensocial.oauth.OAuthDataStore not
> found. No bindings to that type were found.
>
> 1 error[s]
>    at com.google.inject.BinderImpl.createInjector(BinderImpl.java:277)
>    at com.google.inject.Guice.createInjector(Guice.java:79)
>    at
>
> org.apache.shindig.common.servlet.GuiceServletContextListener.contextInitialized(GuiceServletContextListener.java:64)
>    at
>
> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)
>    at
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
>    at
>
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
>    at
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
>    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
>    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:850)
>    at
> org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:724)
>    at
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:493)
>    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
>    at
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
>    at
>
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
>    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
>    at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
>    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
>    at
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
>    at
> org.apache.catalina.core.StandardService.start(StandardService.java:516)
>    at
> org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
>    at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>    at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>    at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>    at java.lang.reflect.Method.invoke(Method.java:585)
>    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
>    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
>
> My GuiceModule is this (note that OAuthDataStore is declared):
>
> public class GuiceModule extends SocialApiGuiceModule {
>
>    protected void configure(){
>        super.configure();
>
>  bind(String.class).annotatedWith(Names.named("shindig.canonical.json.db"))
>     .toInstance("sampledata/canonicaldb.json");
>
> bind(PersonService.class).to(org.self.opensocial.PesonServiceImpl.class);
>
>        bind(OAuthDataStore.class).to(SampleOAuthDataStore.class);
>    }
>
> }
>
> and here's the web.xml that loads all modules:
>
> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>         xmlns="http://java.sun.com/xml/ns/javaee";
>         xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd";
>         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
> http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd";
>         id="Shindig"
>         version="2.5">
>  <!-- configuration -->
>  <!-- If you have your own Guice module(s), put them here as a
> colon-separated list. -->
>  <context-param>
>    <param-name>guice-modules</param-name>
>    <param-value>
>           org.apache.shindig.common.PropertiesModule:
>        org.apache.shindig.gadgets.oauth.OAuthModule:
>        org.self.guice.modules.GuiceModule
>        </param-value>
>  </context-param>
>
>  <filter>
>    <filter-name>authFilter</filter-name>
>
>
> <filter-class>org.apache.shindig.auth.AuthenticationServletFilter</filter-class>
>  </filter>
>
>  <filter-mapping>
>    <filter-name>authFilter</filter-name>
>    <url-pattern>/social/*</url-pattern>
>  </filter-mapping>
>
>  <listener>
>
>
> <listener-class>org.apache.shindig.common.servlet.GuiceServletContextListener</listener-class>
>  </listener>
>
>  <!-- Serve social REST api -->
>  <servlet>
>    <servlet-name>socialRestapiServlet</servlet-name>
>    <servlet-class>
>      org.apache.shindig.protocol.DataServiceServlet
>    </servlet-class>
>    <init-param>
>      <param-name>handlers</param-name>
>      <param-value>org.apache.shindig.social.handlers</param-value>
>    </init-param>
>  </servlet>
>
>  <!-- Serve social RPC api -->
>  <servlet>
>    <servlet-name>socialJsonRpcServlet</servlet-name>
>    <servlet-class>
>      org.apache.shindig.protocol.JsonRpcServlet
>    </servlet-class>
>    <init-param>
>      <param-name>handlers</param-name>
>      <param-value>org.apache.shindig.social.handlers</param-value>
>    </init-param>
>  </servlet>
>
>  <servlet-mapping>
>    <servlet-name>socialRestapiServlet</servlet-name>
>    <url-pattern>/social/rest/*</url-pattern>
>  </servlet-mapping>
>
>  <servlet-mapping>
>    <servlet-name>socialJsonRpcServlet</servlet-name>
>    <url-pattern>/social/rpc/*</url-pattern>
>  </servlet-mapping>
> </web-app>
>
>
> Any ideas why this happens? If you need further info on my
> configuration/code please ask!
>
> Thanks in advance
> --
> Fernandez, Pablo.
>

Reply via email to