используя причал на андроид на сервер статический файл - PullRequest
0 голосов
/ 15 января 2019

Я создал класс WebProvider для добавления сервера Jetty в мое приложение для Android и статические ресурсы сервера. Я запускаю сервер кнопкой, но не могу получить доступ к адресу http://localhost:8080.

import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.HandlerCollection;
import org.eclipse.jetty.server.handler.ResourceHandler;

public class WebProvider {
    private static Server server;
    private static HandlerCollection hc;
    private static String path;



    public void startServer(){
        if(this.path != null && !this.path.isEmpty()){
            this.server = new Server(8080);

            this.hc = new HandlerCollection(true);

            this.setResources(this.path);

            this.server.setHandler(this.hc);

            try {
                this.server.start();
                this.server.join();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    public void setResources(String path){
        if(this.hc!= null){
            this.path = path;
            Handler[] allHandler = this.hc.getHandlers();
            if(allHandler != null){
                for(int i=0;i<allHandler.length;i++){
                    this.hc.removeHandler(allHandler[i]);
                }
            }
            ResourceHandler resourceHandler = new ResourceHandler();
            resourceHandler.setResourceBase(path);
            this.hc.addHandler(resourceHandler);
        }else{
            this.path = path;
        }
    }
}

Я вызываю сервер, чтобы установить ресурсы для обратного вызова одной кнопки, а затем запускаю сервер для обратного вызова другой кнопки.

Кнопка 1

WebProvider si = new WebProvider();
si.setResources(this.url);

Кнопка 2

WebProvider si = new WebProvider();
si.startServer();
...