@Service
public class HttpServer {
@Value("${webapp.ip}")
private String ip;
@Value("${webapp.port}")
private int port;
@Value("${webapp.path}")
private String path;
private Server server;
public void init() {
HttpConfiguration httpConfig = new HttpConfiguration();
httpConfig.setOutputBufferSize(32768);
server = new Server();
ServerConnector connector = new ServerConnector(server, new HttpConnectionFactory(httpConfig));
if (StringUtils.isNotEmpty(ip))
connector.setHost(ip);
if (port <= 0)
port = 8089;
connector.setPort(port);
connector.setIdleTimeout(30000);
server.setConnectors(new Connector[] { connector });
WebAppContext servletContext = new WebAppContext();
servletContext.setDefaultsDescriptor("webdefault.xml");
servletContext.setContextPath("/");
String realPath = path;
URL url = getClass().getResource(path);
if (url != null) {
File dir = null;
try {
dir = new File(url.toURI());
} catch (URISyntaxException e) {
e.printStackTrace();
}
if (dir != null && dir.exists())
realPath = dir.getAbsolutePath();
}
servletContext.setResourceBase(realPath);
servletContext.setParentLoaderPriority(true);
EnumSet<DispatcherType> enums = EnumSet.allOf(DispatcherType.class);
servletContext.addFilter(ReleaseResourceFilter.class, "/*", enums);
server.setHandler(servletContext);
}
public void start() {
try {
server.start();
} catch (Exception e) {
e.printStackTrace();
}
}
@PreDestroy
public void stop() {
try {
server.stop();
} catch (Exception e) {
e.printStackTrace();
}
}
public Server getServer() {
return server;
}
public WebAppContext getWebAppContext() {
return (WebAppContext) server.getHandler();
}
public static void main(String[] args) {
HttpServer server = new HttpServer();
server.ip = "127.0.0.1";
server.port = 9999;
server.path = "/webapps";
server.start();
}
}
org.eclipse.jetty.server.Server 实践HttpServer
最新推荐文章于 2023-08-16 13:46:24 发布