gpt4 book ai didi

java - 如何打包我的 Android ReSTLet 服务器所需的静态文件?

转载 作者:行者123 更新时间:2023-12-01 11:27:59 25 4
gpt4 key购买 nike

我正在使用 ReSTLet 2.3.2。

我正在构建一个运行 Servlet 服务器的 Android Activity。我想将一些文件( keystore 和静态 Web 文件目录)与生成的 APK 一起打包,并使 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/rawassets 中,但我不知道如何使它们可供访问一旦移动到我的网络服务器。

最佳答案

您可以更改目录根 url 并使用 clap 协议(protocol)(利用类加载器):

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/");
}
};

我还没有准确测试您的代码,希望它对您有用。

关于java - 如何打包我的 Android ReSTLet 服务器所需的静态文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30652986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com