Restlet 2.1 で JSE アプリケーションを実行しています。アプリケーション コンテキストを使用しようとしていますが、アプリケーションでは常に null です。null であるため、リソースを呼び出すときに渡す属性を含め、何にもアクセスできないようです。
restlet アプリケーション クラスのコードは次のとおりです。
package net.factor3.mailapp;
import net.factor3.mailapp.impl.PageServerImpl;
import org.restlet.Application;
import org.restlet.Context;
import org.restlet.Request;
import org.restlet.Response;
import org.restlet.Restlet;
import org.restlet.Server;
import org.restlet.data.MediaType;
import org.restlet.data.Protocol;
import org.restlet.routing.Router;
import org.restlet.routing.Template;
public class MyServer extends Application
{
public MyServer()
{
setName("Test Application");
setDescription("Testing use of Restlets");
}
@Override
public Restlet createInboundRoot()
{
Context ctx = getContext();
Router route = new Router(ctx);
route.setDefaultMatchingMode(Template.MODE_EQUALS);
route.attach("http://localhost:8100/",PageServerImpl.class);
route.attach("http://localhost:8100/{page}",PageServerImpl.class);
return(route);
}
public static void main(String[] args) throws Exception
{
Server asrv = new Server(Protocol.HTTP,8100);
asrv.setNext(new MyServer());
asrv.start();
}
}
PageServerImpl は ServerResource であることに注意してください。createInboundRoot() では、getContext() を使用してアプリケーションのコンテキストを取得し、それを ctx に入れます。ctx は常に null です。そのため、ServerResource でパラメーターと属性が失われていると思います。
これは Restlet 2.1 の JRE バージョンのバグですか? もしそうなら、どこに報告すればいいですか?Restlet の Web サイトには、バグ レポートへの明確なリンクがありません。
バグでない場合、この種のアプリケーションで適切なコンテキストを取得するにはどうすればよいですか?
誰かアドバイスください。