当我单击Tomcat服务器然后Open Launch configuration -> Environment -> Variable, Value
时,我可以使用Eclipse设置环境变量。什么是no-gui,no-eclipse textual-xml相当于这个变量设置?
答案 0 :(得分:1)
请参阅:http://tomcat.apache.org/tomcat-5.5-doc/config/context.html#Attributes
您可以通过在此元素中嵌套
<Parameter>
元素来配置将作为servlet上下文初始化参数对Web应用程序可见的命名值。例如,您可以创建如下的初始化参数:
<Context ...>
...
<Parameter name="companyName" value="My Company, Incorporated"
override="false"/>
...
</Context>
这相当于在Web应用程序部署描述符(/WEB-INF/web.xml)中包含以下元素:
<context-param>
<param-name>companyName</param-name>
<param-value>My Company, Incorporated</param-value>
</context-param>
但不需要修改部署描述符来自定义此值。
答案 1 :(得分:0)
如果您使用的是gnu-linux操作系统,则可以编辑 catalina.sh 脚本以导出环境变量。脚本的第一行(当然是评论之后)应该是
export variableName=variableValue
卢卡斯的功劳是告诉我该怎么做。
答案 2 :(得分:0)
如果您是将参数传递给servlet上下文的启动,请参阅Answer by miku。
如果您要使用Environment Entries功能,请使用<Environment>
而不是其他答案中看到的<Parameter>
。
在此示例中,如果我正在为development, testing, acceptance, education, or production运行网络应用,则设置标志信号。
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<!-- Domain: DEV, TEST, ACPT, ED, PROD -->
<Environment name = "work.basil.example.deployment-mode"
description = "Signals whether to run this web-app with development, testing, acceptance, education, or production settings."
value = "DEV"
type = "java.lang.String"
override = "false"
/>
</Context>
您可以选择一些放置此类XML的位置。对于此示例,我们希望将文件外部化,将其保留在包含我们的Web应用程序的WAR文件之外。通过外部化,我们可以将WAR部署到任何开发,测试,acpt,ed或prod服务器,而无需特殊的构建或手动编辑。因此,为此,我喜欢使用Tomcat的功能,允许使用与上下文相同名称的XML文件。该文件位于conf
文件夹中,在其中您可以创建以Tomcat引擎和主机命名的嵌套文件夹。例如,在我的开发计算机上,其名称为my_tomcat_base_folder/conf/Catalina/localhost/example.xml
,其中example
是上下文的名称,Catalina
是引擎名称,localhost
是主机名(不是开发中使用域名)。
以上XML的语法是特定于Tomcat的。为了在Servlet标准的地方(例如/WEB-INF/web.xml
文件中使用),在Servlet 4规范第14.4.21节中记录的等效项是:
<env-entry>
<env-entry-name>work.basil.example.deployment-mode</env-entry-name>
<description>Signals whether to run this web-app with development, testing, acceptance, education, or production settings.</description>
<env-entry-value>DEV</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>