【问题标题】:Simple Java web app with tomcat, from localhost to deployment带有 tomcat 的简单 Java Web 应用程序,从 localhost 到部署
【发布时间】:2017-06-04 09:12:34
【问题描述】:

我是 java 开发的初学者,来自 rails。

我正在关注 this Heroku tutorial 我已经 git 克隆了 this example project 以尝试在 heroku 上进行部署。 现在我有不同的应用程序,一个在 Tomcat 上运行的 android 应用程序的小型后端。这真的很简单,但我不明白如何/在哪里将文件从我的后端放置到嵌入式 tomcat 应用程序(这是 Heroku 的示例)并将其推送到 Heroku。 我的后端(名为 hatalink)有这个表单(它位于 Tomcat 的 webapps 文件夹中)

.
hatalink
└─── WEB-INF
       |
       └─── lib
       |      └───  mysql-connector-java-5.1.27-bin.jar
       |    
       └─── classes
              └─── hatalink
              |      └─── All my classes in *.class
              |
              └─── All my classes in *.java form
              └─── web.xml

而我的 web.xml 的内容都是这样的:

<web-app>
  <servlet>
    <servlet-name>Login</servlet-name>
    <servlet-class>hatalink.Login</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Login</servlet-name>
    <url-pattern>/Login</url-pattern>
  </servlet-mapping>
.... (The same for all classes...)
</web-app>

这在我的本地主机上使用 tomcat 可以正常工作,但是如何将已经从我的后端项目工作的文件添加到示例项目中? 那么我再次正确吗?有没有更简单的方法/地方来部署这个应用程序?真的很简单,我就是想上网。

【问题讨论】:

  • 你能再解释一下吗?如果它与本地 Tomcat 一起工作......究竟是什么不工作?部署现有资源时会发生什么?
  • 我无法理解将 java 文件、类文件和 web.xml 放在 heroku 项目中的什么位置,因此我可以推送它并开始运行。

标签: java maven tomcat heroku


【解决方案1】:

无论您使用哪种服务器/服务,您的web.xml 文件总是 必须进入WEB-INF/web.xml。您本地的 Tomcat 也必须如此。

你的 ASCII 艺术图片显示你在 WEB-INF/classes/web.xml,所以你需要移动它。

您永远不需要使用 Web 应用程序打包 .java 文件。出于多种原因,我建议您不要包含它们。

【讨论】:

    【解决方案2】:

    从 servlets 3.0 开始有一个更简单的方法。 而是像您一样使用 部署描述符 (web.xml)

     <web-app>
      <servlet>
        <servlet-name>Login</servlet-name>
        <servlet-class>hatalink.Login</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>Login</servlet-name>
        <url-pattern>/Login</url-pattern>
      </servlet-mapping>
    .... (The same for all classes...)
    </web-app>
    

    您可以使用注释。

    @WebServlet(name = "myServlet", urlPatterns = { "/path/to/my/servlet" })
    public class YourServletName extends HttpServlet {
    

    【讨论】:

    • 感谢您的信息。在 Heroku 示例中,我应该在哪里添加这些代码行以及我的 *.java 和 *.class 文件应该放在哪里?
    • 在这个例子中,HelloServlet 有注释。不运行的一个原因是 web.xml 中同时包含注释以及 标记。我正在使用不同的应用程序服务器(WildFly),不能告诉你应用程序结构,但你可以look here
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    • 2012-08-30
    • 1970-01-01
    • 2012-08-12
    • 1970-01-01
    • 2014-11-02
    • 2011-08-11
    相关资源
    最近更新 更多