【问题标题】:Run .jar in tomcat在tomcat中运行.jar
【发布时间】:2014-05-26 00:31:42
【问题描述】:

您好,我是 web 应用程序开发的菜鸟,但是在学习了几个教程并在 stackoverflow 上提问后,我能够构建一个 web 应用程序。 我最初遵循的教程使用 Spring Boot,所以我最终得到了一个 .jar 应用程序。但是到了部署的时候,老板告诉我要使用Tomcat,因为同一台服务器会运行PHP/Apache和Tomcat。

我关注了tutorial,了解如何将罐子转换为战争。但是我在实现中遇到了几个问题。

例如,运行java应用程序时网页可以在/src/main/webapp/resources/css中找到css文件,但当我转换为war时网页找不到该文件。在使用我没有运行 .jar 应用程序的 tomcat 时,我也会遇到空指针异常。

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    ApplicationContext ctx = application.context();
MyJDBCTransaction myJDBCTransaction = ctx.getBean(MyJDBCTransaction.class);

    return application.sources(MyApp.class);
}

当我分析日志时,有问题的代码是

MyJDBCTransaction myJDBCTransaction = ctx.getBean(MyJDBCTransaction.class);

基本上,使用 Spring Boot 创建的 jar 一切正常(包括 JDBC 事务),但我在部署 war 文件时遇到了麻烦

有没有办法只在 Tomcat 中运行 .jar 应用程序?

感谢您的帮助

【问题讨论】:

  • 你不会在 tomcat 中运行 jars。有上百万种方法可以创建 WAR 文件,具体取决于您的环境。你在使用 IDE 吗?你使用 maven、gradle、ant 还是类似的东西?
  • 你能指定你从哪里得到NullPointerException吗?
  • 我修改了问题以使其更清晰

标签: java spring tomcat spring-boot


【解决方案1】:

Here 你会找到一些关于如何让war文件运行的说明。

这个想法是,当从 jar 更改为 war 时,需要一个 main 方法,但需要您为servlet 容器如何启动应用程序。您可以通过扩展 SpringBootServletInitializer

来做到这一点

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    • 2016-07-10
    • 2020-02-21
    • 1970-01-01
    • 2012-02-29
    相关资源
    最近更新 更多