Назад | Перейти на главную страницу

Создать файл войны tomcat из статического веб-каталога

Я создал простое веб-приложение, состоящее из каталога с html, css, js. Нет кода сервера. По причинам, которые сложно объяснить, мой администратор настаивает на преобразовании его в файл .war, чтобы его можно было легко развернуть на tomcat. Опять же, приложение вообще не содержит кода Java. Я не создавал его с помощью муравья или затмения.

Я пробовал создать архив:

jar cvf mywarfile.war *

Что действительно создает файл войны. Однако, когда я развертываю эту войну на tomcat, похоже, это не работает. Tomcat автоматически извлекает военный файл в каталог, но он не становится доступным через веб-сервер. Я думаю, это как-то связано с тем, что моя война не содержит каталогов WEB-INF и META-INF.

Есть ли простой способ превратить статическое клиентское веб-приложение в развертываемый военный файл?

С Tomcat 7 и новее вам даже не нужен web.xml

Просто заархивируйте файл index.html или любые нужные ресурсы. Переименуйте mini.zip в mini.war и все.

mini.war
--index.html

Чтобы развернуть контент на tomcat, нужно включить файл /WEB-INF/web.xml. Ниже пример web.xml который я использовал для развертывания некоторого статического контента через tomcat.

<?xml version="1.0" encoding="UTF-8"?>

<web-app>
    <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet>
        <servlet-name>jsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>
            <param-name>fork</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>3</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.json</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.csv</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>default</servlet-name>
         <url-pattern>*.js</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.css</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.jpg</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.jpeg</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.png</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.js</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.gif</url-pattern>
    </servlet-mapping>

    <mime-mapping>
        <extension>csv</extension>
        <mime-type>text/csv</mime-type>
    </mime-mapping>      

    <mime-mapping>
        <extension>css</extension>
        <mime-type>text/css</mime-type>
    </mime-mapping>  

    <mime-mapping>
        <extension>js</extension>
        <mime-type>application/javascript</mime-type>
    </mime-mapping>     

    <mime-mapping>
        <extension>html</extension>
        <mime-type>text/html</mime-type>
    </mime-mapping>     

  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Restricted URLs</web-resource-name>
      <url-pattern>/</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
      <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
  </security-constraint>

  <!-- Default page to serve -->
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>

</web-app>