我正在使用Restlet 2.3.2。
我正在构建一个运行Servlet服务器的Android Activity。我想用生成的APK打包一些文件(密钥库和静态Web文件目录),并让它们可以访问Restlet。
现在,我将这些文件放在/storage/sdcard0
中。以下是实际使用位于该位置的文件的代码:
Server server = component.getServers().add(org.restlet.data.Protocol.HTTPS, port);
component.getClients().add(org.restlet.data.Protocol.FILE);
Series<Parameter> parameters = server.getContext().getParameters();
parameters.add("sslContextFactory", "org.restlet.engine.ssl.DefaultSslContextFactory");
parameters.add("keyStorePath", "/storage/sdcard0/ssl/keystore");
parameters.add("keyStorePassword", "password");
parameters.add("keyPassword", "password");
parameters.add("keyStoreType", "BKS");
parameters.add("keyManagerAlgorithm", KeyManagerFactory.getDefaultAlgorithm());
// Create an application
Application application = new Application() {
@Override
public Restlet createInboundRoot() {
return new Directory(getContext(), "/storage/sdcard0/www/");
}
};
component.getDefaultHost().attach("/static", application);
我想将这些文件打包在我的Android项目中的res/raw
或assets
中,但我不知道如何移动后我的网络服务器可以访问这些文件。 / p>
答案 0 :(得分:1)
您可以更改目录根网址并使用clap协议(利用类加载器):
component.getClients().add(org.restlet.data.Protocol.CLAP);
// Create an application
Application application = new Application() {
@Override
public Restlet createInboundRoot() {
return new Directory(getContext(), "clap://class/assets/");
}
};
我没有完全测试您的代码,我希望它能为您效劳。