Java 行为解释
有人能解释一下为什么这段代码在startFileHTTP()处停止吗?jetty服务器启动,但程序的其余部分不工作。我需要研究多线程编程吗Java 行为解释,java,jetty,Java,Jetty,有人能解释一下为什么这段代码在startFileHTTP()处停止吗?jetty服务器启动,但程序的其余部分不工作。我需要研究多线程编程吗 try { startFileHTTP(); } catch (Exception e) { e.printStackTrace(); } public void startFileHTTP() throws Exception { Server server = new Server(); SelectChanne
try {
startFileHTTP();
} catch (Exception e) {
e.printStackTrace();
}
public void startFileHTTP() throws Exception {
Server server = new Server();
SelectChannelConnector connector = new SelectChannelConnector();
connector.setPort(8080);
server.addConnector(connector);
ResourceHandler resource_handler = new ResourceHandler();
resource_handler.setDirectoriesListed(true);
resource_handler.setWelcomeFiles(new String[] { "index.html" });
resource_handler.setResourceBase("/test");
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] { resource_handler, new DefaultHandler() });
server.setHandler(handlers);
server.start();
server.join();
}
控制台:
2011-02-10 13:55:47.828:INFO::jetty-7.1.6.v20100715
2011-02-10 13:55:47.953:INFO::Started SelectChannelConnector@0.0.0.0:8080
我认为原因是函数的最后一行是
server.join();
此函数仅在服务器
线程完成运行时返回。看起来这不是你想要的,因为看起来你希望它在后台运行。摆脱这条线应该可以解决这个问题
另外,您可能不应该从startFileHTTP
抛出Exception
。这使得可以抛出哪些异常变得不那么清楚,并且减少了调用方关于他们可能看到的错误类型的信息量