战争文件应该有多大?

Posted

技术标签:

【中文标题】战争文件应该有多大?【英文标题】:How big a war file should be? 【发布时间】:2013-04-01 02:56:33 【问题描述】:

Tomcat 7 管理器将战争文件大小限制为 50 Mo。

为什么限制为 50 Mo? war 文件的最大大小应该是多少? (在实践中)

我正在使用 Grails 2.2,它生成的最小 WAR 为 28 Mo。 所以,50 分钟这个限制是很容易达到的。

【问题讨论】:

【参考方案1】:

这只是为您设置的通过 Tomcat 7 管理器上传和部署的限制。您可以部署到 tomcat 服务器的 war 文件的大小确实没有限制。

Here 是一个可以帮助您增加此上传大小的链接。

引用自链接--

转到管理器应用程序的 web.xml(例如,它可以是 在 /tomcat7/webapps/manager/WEB-INF/web.xml 下。增加 最大文件大小和最大请求​​大小:

<!– 50MB max –>

 <max-file-size>52428800</max-file-size>

 <max-request-size>52428800</max-request-size>

 <file-size-threshold>0</file-size-threshold>

 </multipart-config>

【讨论】:

【参考方案2】:

如果您使用的是 Tomcat 8,max-file-size 将不在 web.xml 中。相反,打开 conf/server.xml 并找到 HTTP 连接器的标记条目。然后添加

maxPostSize="0"

这个标签的属性和价值。完成对conf/server.xml 文件的编辑后,保存并重新启动 Apache Tomcat。

【讨论】:

max-file-size 在 Tomcat 8.0.20 中仍位于 web.xml 中,按照 Oscar Lopez 的回答设置为 50MB。【参考方案3】:

50 MB 默认文件大小限制不是硬编码的,您可以在 webapp 文件夹的 Manager 应用程序的 web.xml 文件中更改它。您必须增加max-file-sizemax-request-size

<!– 50MB max –>
<max-file-size>52428800</max-file-size>
<max-request-size>52428800</max-request-size>
<file-size-threshold>0</file-size-threshold>

用适合您需要的值替换当前值。

【讨论】:

【参考方案4】:

转到管理器应用程序的 web.xml(例如它可能在 /tomcat7/webapps/manager/WEB-INF/web.xml 下。

将 max-file-size 和 max-request-size 增加到例如 100Mb

【讨论】:

【参考方案5】:

在 tomcat7 中,更新 tomcat7/server.xml。我在ubuntu中安装了tomcat7,所以目录如下

ll /etc/tomcat7/
total 220
drwxr-xr-x   4 root root      4096 Oct  6 18:14 ./
drwxr-xr-x 136 root root     12288 Oct  6 16:12 ../
drwxrwxr-x   3 root tomcat7   4096 Sep 23 15:44 Catalina/
-rw-r--r--   1 root tomcat7   6506 Jun 27 12:48 catalina.properties
-rw-r--r--   1 root tomcat7   1394 Jan 25  2014 context.xml
-rw-r--r--   1 root tomcat7   2370 Feb 18  2016 logging.properties
drwxr-xr-x   2 root tomcat7   4096 Sep 23 16:06 policy.d/
-rw-r--r--   1 root tomcat7   6716 Oct  6 18:14 server.xml
-rw-r-----   1 root tomcat7   1607 Sep 23 15:50 tomcat-users.xml
-rw-r--r--   1 root tomcat7 168099 Nov 25  2015 web.xml

你会在 conf 文件 etc/tomcat7/server.xml 中看到连接器部分,

<!-- A "Connector" represents an endpoint by which requests are received
     and responses are returned. Documentation at :
     Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
     Java AJP  Connector: /docs/config/ajp.html
     APR (HTTP/AJP) Connector: /docs/apr.html
     Define a non-SSL HTTP/1.1 Connector on port 8080
-->
<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           URIEncoding="UTF-8"
           redirectPort="8443"/>

停止tomcat,只在末尾添加maxPostSize

sudo service tomcat7 stop

更新 server.xml 中的连接器,

<!-- A "Connector" represents an endpoint by which requests are received
     and responses are returned. Documentation at :
     Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
     Java AJP  Connector: /docs/config/ajp.html
     APR (HTTP/AJP) Connector: /docs/apr.html
     Define a non-SSL HTTP/1.1 Connector on port 8080
-->
<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           URIEncoding="UTF-8"
           redirectPort="8443" 
           maxPostSize="57000000"/>

然后重启tomcat。

sudo service tomcat7 start

【讨论】:

以上是关于战争文件应该有多大?的主要内容,如果未能解决你的问题,请参考以下文章

如何将战争合二为一?

在没有 maven 的情况下启动码头的可执行战争文件

将战争应用程序名称与战争文件名分开

Maven,在战争即将建立之前运行一个java方法或脚本

2D游戏平滑的迷雾战争效果

为啥 Eclipse 在战争中导出源?