Web-Server

從靜態 Web 目錄創建 tomcat 戰爭文件

  • August 26, 2016

我創建了一個簡單的 Web 應用程序,它由一個帶有 html、css、js 的目錄組成。沒有伺服器程式碼。由於復雜的原因,我的管理員堅持把它變成一個.war文件,這樣就可以很容易地部署在tomcat上。同樣,該應用程序根本不包含任何 Java 程式碼。我沒有用 ant 或 eclipse 創建它。

我嘗試創建一個存檔:

jar cvf mywarfile.war *

這確實創建了一個戰爭文件。但是,當我在 tomcat 上部署這場戰爭時,它似乎不起作用。Tomcat 會自動將 war 文件解壓縮到一個目錄,但它不會通過 Web 伺服器變得可用。我想這與我的戰爭不包含目錄WEB-INFMETA-INF.

有沒有一種簡單的方法可以將靜態客戶端 Web 應用程序轉換為可部署的 war 文件?

為了在 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>

引用自:https://serverfault.com/questions/463169