问题描述
我有 java 应用程序(没有 Spring 或 Spring Boot),其中服务器通过调用此方法启动:
public void startServer() {
com.sun.net.httpserver.HttpServer server = JdkHttpServerFactory.createHttpServer(address,resourceConfig,false);
logger.info("HTTP: Start Http-Server. Adress: %s",address);
server.start();
}
我希望此应用程序充当 Eureka Server
。
Eureka Clients
将是 Spring 服务,因此我可以对其进行配置。
我看过很多关于如何使用 Spring 应用程序设置 Eureka Server 的教程,但我不知道如何使用非 Spring 应用程序来实现它?
我是否必须在端点下面手动添加到 Eureka 服务器? https://github.com/Netflix/eureka/wiki/Eureka-REST-operations
解决方法
Eureka 服务器在 Web 应用程序中作为 Jersey REST 端点实现。它可以作为 WAR 部署在任何 servlet 容器上:Tomcat、JBoss、Jetty 等。
您可以从 https://github.com/Netflix/eureka/eureka-server 处的代码构建 WAR。
但是您使用的 Java HTTP Server 不支持 servlet API,因此您不能只向其中添加 WAR。
- 选项 1:在独立的 Tomcat/Jetty/... 上作为单独的进程运行它
- 选项 2:在主类中添加嵌入式 Tomcat 或 Jetty(就像 Spring Boot 那样)。
- 选项 3:尝试找出如何在您的 HTTP 服务器中映射 Jersey REST 端点?