嵌入式Jetty服务器

时间:2014-12-21 19:36:06

标签: java server embedded-jetty

我有一些用jetty构建的项目。我从像

这样的代码创建服务器
    Server server = new Server(8082);
    server.setHandler(new DefaultRequestHandler());
    server.start();
    server.join();

在开发应用程序时非常有用,但是将此类应用程序部署到服务器的正确方法是什么? 我可以从中构建一个jar并以

运行它
    java -jar server.jar

是否可以,或者我应该安装jetty并将我的应用部署为战争? 我在运行简单jar时遇到的问题是我将它部署为远程机器,如果我将其作为类型运行,它将在控制台的主线程中运行,因此我无法在该控制台窗口中执行任何操作。如果我关闭控制台窗口,它将终止进程。我可以把它作为

开始
    java -jar server.jar &

它会转到后台,但我无法停止服务器。只有使用kill命令。 另外我发现有一些start.jar可以启动jetty,但我没有找到描述性的例子何时以及如何使用它。

我遇到的第二个问题是日志。它将所有日志打印到控制台或/ dev / null。有办法以某种方式处理日志文件吗?我的意思是有可能存储日志3天,例如,并没有在一个文件中写入日志,直到空间结束或我将手动删除日志文件。这是处理服务器,还是某些日志库,如log4j或其他什么?

我使用centos7作为服务器。

2 个答案:

答案 0 :(得分:0)

这是完全可以的。使用嵌入式应用程序服务器容器是一种非常常见的做法,尤其是当我们更多地转向微服务时。一切都由构建管理,易于构建/部署和维护。

对于Windows,您的运行时作为服务的问题已得到解答here。对于* nix,您可以按照此命令

  

java -jar abc.jar&

关于处理日志,

最好在应用程序本身处理日志。 Log4j将是一个配置日志级别,轮换计划的好框架。

如果您将库打印输出到控制台,则可以将其重定向到日志文件。然后你需要配置几乎所有* nix风格的logrotate

答案 1 :(得分:-1)

有一个名为jetty-runner.jar的现成嵌入式Jetty服务器jar。这可能是一个非常好的解决方案。此刻我发现这个包只有一个减号。如果您需要支持Web套接字,则必须使用其他jar重新包装它。