在Android上使用Jetty服务器静态文件

时间:2019-01-15 19:15:51

标签: java jetty embedded-jetty

我创建了WebProvider类,将码头服务器添加到我的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();

0 个答案:

没有答案