在 Restlet 2.3 中,Component main 已被弃用,我该如何使用 Spring XML 代替?
In Restlet 2.3 Component main is deprecated, how do I use Spring XML instead?
尝试从 Restlet 2.2 升级到 2.3,我收到了 Component main 的警告。在 javadocs 中它说: "Use XML support in the Spring extension instead." 但我找不到任何这样的例子。任何人都有一个让我开始的例子吗?我正在使用命令行中的 jse 版本到 运行 我的服务器。
是的,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>
然后您可以简单地启动您的 Restlet 应用程序,如下所述,通过创建一个 Spring 容器并从中获取组件:
// 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();
希望对你有帮助,
蒂埃里
尝试从 Restlet 2.2 升级到 2.3,我收到了 Component main 的警告。在 javadocs 中它说: "Use XML support in the Spring extension instead." 但我找不到任何这样的例子。任何人都有一个让我开始的例子吗?我正在使用命令行中的 jse 版本到 运行 我的服务器。
是的,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>
然后您可以简单地启动您的 Restlet 应用程序,如下所述,通过创建一个 Spring 容器并从中获取组件:
// 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();
希望对你有帮助, 蒂埃里