如何将HttpServer功能添加到Java应用程序,必须适用于Oracle和Open JDK

时间:2017-09-02 08:19:57

标签: java httpserver

我有一个应用程序,目前只能作为Gui应用程序或命令行运行。我想添加支持以便它运行服务器,并且可以通过Web浏览器通过不同的计算机进行控制。

因此它将在端口上连续运行,我希望用户在浏览器中连接到该端口并查看摘要页面,然后能够通过http get请求发起请求。

需要使用OpenJdk而不仅仅是Oracle Java,所以我想停止使用com.sun.httpserver。

这是对现有产品的改进,它无法重新设计为在Servlet引擎(如Jetty或Tomcat)中作为servlet运行,实际上大多数用户将继续在Gui或cmd行模式下使用它。

我不想重新发明轮子,所以我不想尝试从头开始添加这个基本的http支持。

我正在使用Java 8

有些人可以建议一种方法。

1 个答案:

答案 0 :(得分:1)

试试Spark Java

添加maven pom dpendency:

<dependency>
    <groupId>com.sparkjava</groupId>
    <artifactId>spark-core</artifactId>
    <version>2.6.0</version>
</dependency>

然后您就可以启动简单的Web服务器了。该示例仅显示get方法URI,但所有HTTP方法均可用。

import static spark.Spark.*;

public class HelloWorld {
    public static void main(String[] args) {
        get("/hello", (req, res) -> "Hello World");
    }
}

检查它是否有效:

http://localhost:4567/hello

当然还有其他解决方案,比如NanoHttpd - 我见过的最基本的HTTP服务器实现。通常用于Android应用程序。