在不替换整个Tomcat文件的情况下实现这一点的另一种方法是在您的文件夹中使用以下方法(例如server.xml
.ebextensions
tomcat.config
)
files:
"/tmp/update_tomcat_server_xml.sh":
owner: root
group: root
mode: "000755"
content: |
#! /bin/bash
CONFIGURED=`grep -c '<Connector port="8080" URIEncoding="UTF-8"' /etc/tomcat7/server.xml`
if [ $CONFIGURED = 0 ]
then
sed -i 's/Connector port="8080"/Connector port="8080" URIEncoding="UTF-8"/' /etc/tomcat7/server.xml
logger -t tomcat_conf "/etc/tomcat7/server.xml updated successfully"
exit 0
else
logger -t tomcat_conf "/etc/tomcat7/server.xml already updated"
exit 0
fi
container_commands:
00_update_tomcat_server_xml:
command: sh /tmp/update_tomcat_server_xml.sh
此配置创建一个脚本 (),然后运行它 ()。脚本检查字符串,如果找不到它,则使用命令将其添加到中。files
container_command
server.xml
UIREncoding="UTF8"
sed
这个解决方案的好处是,如果您升级了Tomcat的版本(例如,从7升级到8),那么您不必担心更新各种WAR文件中的。server.xml
此外,此示例用于添加参数,但脚本很容易适应从原始问题添加属性。UIREncoding
<Connector ... />'