尝试从Restlet 2.2升级到2.3,我收到了Component main的警告。在javadoc中,它说:"在Spring扩展中使用XML支持。"但我无法找到任何这方面的例子。有人举个例子让我开始吗?我正在使用命令行中的jse版本来运行我的服务器。
答案 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();
希望它可以帮到你, 亨利