Hi Rhett,

Thanks for providing this nice alternative. Spring integration has been a
major pain for Restlet users in the past. I'm happy to see that 1.1 will
bring concrete progress to them.

Would you be able to get a signed JCA back to us? Once done I'll happily add
your classes and unit tests to the SVN trunk.
http://www.restlet.org/community/contribute

Best regards,
Jerome  

> -----Message d'origine-----
> De : Rhett Sutphin [mailto:[EMAIL PROTECTED] 
> Envoyé : vendredi 25 janvier 2008 18:13
> À : [email protected]
> Objet : Re: Spring ServerServlet?
> 
> Hi,
> 
> I'm a bit late to this party, but I've been playing around with  
> another way of integrating Restlets into an existing 
> Spring-based web  
> application.  It uses ServletConverter in a subclass Spring's  
> FrameworkServlet class so that configuring the Restlet 
> servlet is just  
> like configuring a Spring-MVC servlet.  It's still experimental, but  
> it seems to be working all right so far.
> 
> The servlet is here:
> 
> https://svn.bioinformatics.northwestern.edu/studycalendar/trun
> k/src/main/java/edu/northwestern/bioinformatics/studycalendar/
> restlets/RestletSpringServlet.java
> 
> You add it to your web.xml like so:
> 
>      <servlet>
>          <servlet-name>restful-api</servlet-name>
>          <servlet- 
> class 
>  > 
> edu 
> .northwestern 
> .bioinformatics.studycalendar.restlets.RestletSpringServlet</servlet- 
> class>
>          <init-param>
>              <param-name>targetRestletBeanName</param-name>
>              <param-value>router</param-value>
>          </init-param>
>          <load-on-startup>1</load-on-startup>
>      </servlet>
> 
>      <servlet-mapping>
>          <servlet-name>restful-api</servlet-name>
>          <url-pattern>/api/v1/*</url-pattern>
>      </servlet-mapping>
> 
> And then configure it in a file named WEB-INF/<servlet-name>- 
> servlet.xml.  For this example, that would be WEB-INF/restful-api- 
> servlet.xml .  The "targetRestletBeanName" points to a bean in that  
> file which the ServletConverter will delegate to (e.g., a Router).
> 
> I've also implemented an alternate Router (BeanNameRouter) 
> which works  
> like Spring-MVC's BeanNameUrlHandlerMapping.  With it, you 
> can have a  
> restful-api-servlet.xml doc like this:
> 
> <beans  xmlns="http://www.springframework.org/schema/beans";
>          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>          xsi:schemaLocation="
>          http://www.springframework.org/schema/beans 
> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
>          ">
> 
>      <bean name="router"  
> class 
> = 
> "edu 
> .northwestern.bioinformatics.studycalendar.restlets.BeanNameRouter"/>
> 
>      <bean name="/studies"
>            id="studiesResource" autowire="byName" scope="prototype"
>             
> class 
> = 
> "edu.northwestern.bioinformatics.studycalendar.restlets.Studie
> sResource"
>            />
> 
>      <bean name="/studies/{study-identifier}/template"
>            id="templateResource" autowire="byName" scope="prototype"
>             
> class 
> = 
> "edu 
> .northwestern.bioinformatics.studycalendar.restlets.TemplateResource"
>            />
> 
> </beans>
> 
> This file defines two resources -- /studies and /studies/{study- 
> identifier}/template .  The BeanNameRouter takes care of creating  
> appropriate Finders for each resource and attaching them to 
> the router  
> via Spring's BeanFactoryPostProcessor mechanism.  BeanNameRouter is  
> here:
> 
> https://svn.bioinformatics.northwestern.edu/studycalendar/trun
> k/src/main/java/edu/northwestern/bioinformatics/studycalendar/
> restlets/BeanNameRouter.java
> 
> It depends on SpringBeanFinder:
> 
> https://svn.bioinformatics.northwestern.edu/studycalendar/trun
> k/src/main/java/edu/northwestern/bioinformatics/studycalendar/
> restlets/SpringBeanFinder.java
> 
> SpringBeanFinder is a Finder that resolves Resources out of a  
> BeanFactory by name (an alternative to the cglib-based lookup-method  
> approach suggested with SpringFinder).
> 
> Caveat coder: I've only tested this with 1.1-M1, and I think some of  
> the spring integration these classes depend on is only available in  
> that version.  I'd be happy to contribute any or all of this code to  
> the Restlet spring extension if it would be useful.  (And I've even  
> got unit tests for it.)
> 
> Rhett
> 
> On Jan 24, 2008, at 9:11 AM, Barry wrote:
> 
> > Hi all,
> >
> > I'm quite new to this so let me know if I'm missing 
> something obvious.
> >
> > I'm trying to create a Spring configured Restlet Application that  
> > will run
> > in a servlet container.
> >
> > As far as I can see I don't think this is supported (as the  
> > ServerServlet
> > creates the application). Is there a way to do this?
> >
> > If not I may create a SpringServerServlet that looks the 
> Application  
> > that
> > willget the application from the spring config.
> >
> > Or alternatively create an an application that proxies its 
> calls to a
> > application looked up from the spring context.
> >
> > Which sounds better (or are they both horrible)?
> >
> > Barry
> >
> >
> >
> 

Reply via email to