Oops ignore that last message - the problem I had is to do with this:

"ServerServlet broken by concurrency fix in 1.1M1"

http://www.mail-archive.com/[email protected]/msg03451.html

I've got the updated version of the connector and it is now working.

Barry


"Barry" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
> Thanks Very much for this.
>
> I'm having trouble setting up the spring configuration to be used by the 
> SpringServerServlet:
>
> I've tried just setting up an application and a component but I don't know 
> how I can set up a component with the right context. My attempt with a 
> dummy context is below.
>
> Anyone know how to do this?
>
> Thanks,
>
> Barry
>
> <bean id="application"
>
> class="org.restlet.ext.spring.SpringApplication">
>
> <constructor-arg ref="component" />
>
> <property name="root" ref="userRestlet" /> </bean>
>
> <bean id="component" class="org.restlet.ext.spring.SpringComponent">
>
> <property name="context" ref="nullContext"/> </bean>
>
>
> <bean id="nullContext" class="org.restlet.Context">
>
> <constructor-arg><value>"dummy"</value></constructor-arg>
>
> </bean>
>
>
>
> "Florian Schwarz" <[EMAIL PROTECTED]> wrote in message 
> news:[EMAIL PROTECTED]
>> Abrakadabra - here is your SpringServerServlet - feel free to use it ;-)
>>
>> usage:
>>
>>    <!-- The Restlet-Application Spring bean that will used by the Restlet 
>> SpringServerServlet. -->
>>    <context-param>
>>        <param-name>org.restlet.application</param-name>
>>        <param-value>beanNameOfTheApplicationToUse</param-value>
>>    </context-param>
>>   <!-- The Restlet-Component Spring bean that will used by the Restlet 
>> SpringServerServlet. -->
>>    <context-param>
>>        <param-name>org.restlet.component</param-name>
>>        <param-value>beanNameOfTheComponentToUse</param-value>
>>    </context-param>
>>   <!-- Restlet adapter -->
>>    <servlet>
>>        <servlet-name>springRestletServlet</servlet-name>
>>
>> <servlet-class>org.restlet.ext.spring.SpringServerServlet</servlet-class>
>>    </servlet>
>>
>>    <!-- Mapping to the Restlet stuff -->
>>    <servlet-mapping>
>>        <servlet-name>springRestletServlet</servlet-name>
>>        <url-pattern>/ws/rest/v1.0/*</url-pattern>
>>    </servlet-mapping>
>>
>>
>>
>>
>>
>>
>> package org.restlet.ext.spring;
>>
>> import org.restlet.Application;
>> import org.restlet.Component;
>> import org.restlet.Context;
>> import org.springframework.web.context.WebApplicationContext;
>> import 
>> org.springframework.web.context.support.WebApplicationContextUtils;
>>
>> import com.noelios.restlet.application.ApplicationContext;
>> import com.noelios.restlet.ext.servlet.ServerServlet;
>> import com.noelios.restlet.ext.servlet.ServletContextAdapter;
>>
>> import infrastructure.errorhandling.exception.InitializationException;
>>
>> /**
>> * This class is similiar to the ServerServlet, but instead of creating 
>> the used Application-Restlet and
>> * Component-Restlet it lookups them from a Spring WebApplicationContext.
>> *
>> * @author Nebu
>> */
>> public class SpringServerServlet extends ServerServlet {
>>
>>    private static final long serialVersionUID = 110030403435929871L;
>>
>>    /**
>>     * Name of the attribute key containing a bean-id of the application 
>> to use.
>>     */
>>    public static final String APPLICATION_KEY = 
>> "org.restlet.application";
>>   /**
>>     * Name of the attribute key containing a bean-id of the component to 
>> use.
>>     */
>>    public static final String COMPONENT_KEY = "org.restlet.component";
>>   /**
>>     * Lookups the single Restlet-Application used by this Servlet from 
>> the SpringContext inside the ServletContext.
>>     *
>>     * @param context The Context for the Application.
>>     *
>>     * @return The Restlet-Application to use or null if unable to lookup 
>> or create.
>>     */
>>    @Override
>>    public Application createApplication(Context context) {
>>        Application application = null;
>>       String applicationBeanName = 
>> getInitParameter(SpringServerServlet.APPLICATION_KEY, null);
>>        application = (Application) 
>> getWebApplicationContext().getBean(applicationBeanName);
>>
>>        if (application != null) {
>>            // Set the context based on the Servlet's context
>>            ApplicationContext applicationContext = (ApplicationContext) 
>> application.getContext();
>>            application.setContext(new ApplicationContext(application, new 
>> ServletContextAdapter(this, context), applicationContext.getLogger()));
>>        } else {
>>            throw new InitializationException("Initialization of the 
>> Restlet application failed. Check your web.xml and your 
>> Spring-configuration");
>>        }
>>
>>        return application;
>>    }
>>   /**
>>     * Lookups the single RestletComponent used by this Servlet from the 
>> SpringContext inside the ServletContext.
>>     *
>>     * @return The Restlet-Component to use or null if unable to lookup or 
>> create.
>>     */
>>
>>    @Override
>>    public Component createComponent() {
>>        Component component = null;
>>       String componentBeanName = 
>> getInitParameter(SpringServerServlet.COMPONENT_KEY, null);
>>        component = (Component) 
>> getWebApplicationContext().getBean(componentBeanName);
>>       if (component == null)
>>            throw new InitializationException("Initialization of the 
>> Restlet component failed. Check your web.xml and your 
>> Spring-configuration");
>>       return component;
>>    }
>>   public WebApplicationContext getWebApplicationContext() {
>>        // by hand would be
>>        // webApplicationContext applicationContext = 
>> (WebApplicationContext) 
>> getServletContext().getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
>>       return 
>> WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());
>>    }
>>   }
>>
>>
>>
>> Barry schrieb:
>>> 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