Java 打包嵌入式tomcat服务器
有史以来第一次使用tomcat/从头开始设置Web应用程序,所以请保持mercyful。我创建了一个嵌入式tomcat服务器,基本上如下所示:Java 打包嵌入式tomcat服务器,java,tomcat,embedded-tomcat-8,Java,Tomcat,Embedded Tomcat 8,有史以来第一次使用tomcat/从头开始设置Web应用程序,所以请保持mercyful。我创建了一个嵌入式tomcat服务器,基本上如下所示: public class Server implements Runnable { private Tomcat tomcat; public Server() { tomcat = new Tomcat(); tomcat.setPort(8080); tomcat.addWebapp("", new File("src/w
public class Server implements Runnable {
private Tomcat tomcat;
public Server() {
tomcat = new Tomcat();
tomcat.setPort(8080);
tomcat.addWebapp("", new File("src/webapp").getAbsolutePath());
}
@Override
public void run() {
try {
tomcat.start();
tomcat.getServer().await();
} catch (LifecycleException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
Thread thread = new Thread(server);
thread.start();
Foo foo = new Foo();
(thread.isAlive()) {
foo.doStuff();
TimeUnit.HOURS.sleep(interval);
}
}
我在一个主管道中运行它,看起来像这样:
public class Server implements Runnable {
private Tomcat tomcat;
public Server() {
tomcat = new Tomcat();
tomcat.setPort(8080);
tomcat.addWebapp("", new File("src/webapp").getAbsolutePath());
}
@Override
public void run() {
try {
tomcat.start();
tomcat.getServer().await();
} catch (LifecycleException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
Thread thread = new Thread(server);
thread.start();
Foo foo = new Foo();
(thread.isAlive()) {
foo.doStuff();
TimeUnit.HOURS.sleep(interval);
}
}
该程序的目的是在一个线程上运行http服务器,而类Foo每隔几个小时在后端执行一次操作。可能不是创建webapp的正确方法,但这是我管理过的最好的方法
然而,现在我正试图打包它,我遇到了一些问题,因为一旦打包(使用Maven)后,服务器似乎无法找到webapp文件夹。在谷歌上搜索了几个小时,尝试了很多关于战争和jar:s的东西后,我得出了一个结论,关于这个嵌入tomcat的东西,我不太理解
因此,我的问题是:
我实现webapp的方式正确吗?我感觉不是,但我不能确认
2a。如果不正确,如何正确操作
2b。如果正确,如何将其打包到可运行的jar/war中?这是一种有点非标准的方式。与其编写你自己的应用程序逻辑来处理集成的Web服务器,你不考虑利用已经存在的东西吗?您可以在SpringBoot中创建一个Java项目,它包含自己的嵌入式web服务器
这里有一个示例初学者示例,它应该可以让您继续学习-
我推荐这种方法,而不是自己编写,因为Spring Boot是一种广泛使用、经过验证和测试的行业标准。这是一种有点非标准的方法。与其编写你自己的应用程序逻辑来处理集成的Web服务器,你不考虑利用已经存在的东西吗?您可以在SpringBoot中创建一个Java项目,它包含自己的嵌入式web服务器
这里有一个示例初学者示例,它应该可以让您继续学习-
我建议使用这种方法,而不是自己编写,因为Spring Boot是一种广泛使用、经过验证和测试的行业标准。很抱歉延迟了响应。谢谢你的帮助,伙计!Spring boot工作得很好,使用和打包都非常简单。很抱歉延迟了响应。谢谢你的帮助,伙计!SpringBoot工作得很好,使用和打包都非常简单。