RESTLET GAE ECLIPSE初始化方法
我正在用Restlet、GAE和Eclipse开发一个应用程序。好的,我知道了: 公共类MainRestleApplication扩展了应用程序{RESTLET GAE ECLIPSE初始化方法,eclipse,google-app-engine,initialization,restlet,init,Eclipse,Google App Engine,Initialization,Restlet,Init,我正在用Restlet、GAE和Eclipse开发一个应用程序。好的,我知道了: 公共类MainRestleApplication扩展了应用程序{ public MainRestletApplication() { //init code? } @Override public Restlet createInboundRoot() { Router router = new Router(getContext()); router.attach("/v1/mainsta
public MainRestletApplication()
{
//init code?
}
@Override
public Restlet createInboundRoot() {
Router router = new Router(getContext());
router.attach("/v1/mainstatus",MainStatus.class);
router.attach("/v1/game/{id}/result",GameResult.class);
return router;
}
}
这是:
<servlet>
<servlet-name>RestletServlet</servlet-name>
<servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
<init-param>
<param-name>org.restlet.application</param-name>
<param-value>com.example.MainRestletApplication
</param-value>
</init-param>
</servlet>
<!-- Catch all requests -->
<servlet-mapping>
<servlet-name>RestletServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
RestletServlet
org.restlet.ext.servlet.ServerServlet
org.restlet.application
com.example.mainRestleApplication
RestletServlet
/*
那么,我可以在哪里放置一个初始化Web服务的方法,因此,一些代码只在应用程序启动时(一次)初始化一些数据,而不是在第一次调用到来时
谢谢无论您是否使用Restlet,是否使用AppEngine,您都可以在web.xml中的任何servlet环境中设置上下文侦听器,如下所示:
<listener>
<listener-class>
example.ServletContextExample
</listener-class>
</listener>
启动GAE上的实例时,将在处理调用之前执行init代码;另一方面,新实例很可能已启动,因为必须处理调用。鸡和蛋的故事…为此,您可以重写com.example.mainRestleApplication类的start()方法。它的生命周期与包装器RestletServlet同步
public class ServletContextExample implements ServletContextListener{
ServletContext context;
public void contextInitialized(ServletContextEvent contextEvent) {
System.out.println("Context Created");
context = contextEvent.getServletContext();
// set variable to servlet context
context.setAttribute("TEST", "TEST_VALUE");
}
public void contextDestroyed(ServletContextEvent contextEvent) {
context = contextEvent.getServletContext();
System.out.println("Context Destroyed");
}
}