如何在上下文文件中将字符串数组定义为环境参数/变量?

时间:2014-10-06 19:42:16

标签: java arrays tomcat tomcat7

在Tomcat 7中,我可以定义特定类型的环境参数/变量,例如在此上下文文件中:

<Context>
    <Environment name="test" value="Hello Tomcat!" type="java.lang.String"
    override="false" />
</Context>

在Java中我可以这样得到它:

(String) new InitialContext().lookup("java:comp/env/test"); //"Hello Tomcat!"

如何定义包含字符串作为值的数组,以便我可以从上下文文件中读取它?我想在我的Java程序中得到类似的东西:

(String[]) new InitialContext().lookup("java:comp/env/my_array");
//{"Hello ", "Tomcat", "!"}

这是否可以在Tomcat 7中使用?

1 个答案:

答案 0 :(得分:3)

您无法使用数组。 Tomcat 7 documentation说:

  

此环境条目的Web应用程序所需的完全限定Java类名称。必须是Web应用程序部署描述符中的合法值。

JavaEE 7 tutorial about environmental entries说:

  

环境条目的数据类型。以下数据类型在Java EE 6中有效:

java.lang.Boolean
java.lang.Byte
java.lang.Character
java.lang.String
java.lang.Short
java.lang.Integer
java.lang.Long
java.lang.Float
java.lang.Double
java.lang.Class
any enumeration type (i.e. a subclass of java.lang.Enum)

当然,您可以将您选择的格式的多个值写为String,例如用逗号分隔:

<Environment name="test" value="value1,value2" type="java.lang.String" override="false" />

String[] values = new InitialContext().lookup("java:comp/env/my_array").split(",");

您还可以使用任何其他格式,例如JSON。只要确保它不与XML语法冲突。