在Restlet 2.3 Component main中不推荐使用,我该如何使用Spring XML?

时间:2015-03-25 19:29:37

标签: restlet

尝试从Restlet 2.2升级到2.3,我收到了Component main的警告。在javadoc中,它说:"在Spring扩展中使用XML支持。"但我无法找到任何这方面的例子。有人举个例子让我开始吗?我正在使用命令行中的jse版本来运行我的服务器。

1 个答案:

答案 0 :(得分:0)

是的,现在不推荐使用Restlet组件的XML配置,您应该使用Spring XML组件。为此,您需要在应用程序中添加扩展Spring(org.restlet.ext.spring)。如果你使用Maven,只需添加:

<dependencies>
    (...)

    <dependency>
        <groupId>org.restlet.jse</groupId>
        <artifactId>org.restlet.ext.spring</artifactId>
        <version>${restlet-version}</version>
    </dependency>

</dependencies>

以下是Spring XML配置中Restlet组件的配置示例:

<beans>
    <bean id="top" class="org.restlet.ext.spring.SpringComponent">
        <property name="server">
            <bean class="org.restlet.ext.spring.SpringServer">
                <constructor-arg value="http" />
                <constructor-arg value="3000" />
            </bean>
        </property>
        <property name="defaultTarget" ref="default" />
    </bean>

    <bean id="default" class="org.restlet.ext.spring.SpringRouter">
        <property name="attachments">
            <map>
                <entry key="/myapp" value-ref="applicationRouter" />
            </map>
        </property>
    </bean>
</beans>

您可以按照以下说明为您的应用定义路由器:

<beans>
    <bean id="applicationRouter" 
          class="org.restlet.ext.spring.SpringRouter">
        <property name="attachments">
            <map>
                <entry key="/users/{username}">
                    <bean class="org.restlet.ext.spring.SpringFinder">
                        <lookup-method name="create"
                                  bean="userResource" />
                    </bean>
                </entry>
                (...)
            </map>
        </property>
    </bean>
</beans>

您可以通过创建Spring容器并从中获取组件,然后启动您的Restlet应用程序(如下所述):

// Load the Spring application context within classpath
ApplicationContext context = new ClassPathXmlApplicationContext(
    new String[] { "applicationContext-router.xml", 
                   "applicationContext-server.xml" });

// Obtain the Restlet component from the context and start it
Component restletComponent = (Component) context.getBean("component");
restletComponent.start();

希望它可以帮到你, 亨利