我遇到了bootstrap.properties文件中'\'(反斜杠)字符的问题。
我首先在bootstrap.properties文件中定义一个变量:
var1=AB\AC
然后,我在server.xml文件中定义了一个jndiEntry:
<jndiEntry value="${var1}" jndiName="jndi/var1" id="var1">
当我在代码中查找jndi条目时,'\'丢失了。如果我使用双反斜杠,即'\\',那么我得到的是正斜杠,即'AB / AC'。
如何输入'\'字符?
答案 0 :(得分:2)
Liberty将对所有变量执行路径规范化,除非将该属性定义为密码类型。目前解决这个问题的唯一方法是在server.xml中包含反斜杠字符,而不是bootstrap.properties。
例如,在server.xml中:
<jndiEntry value="${var1}\${var2}" jndiName="jndi/var1" id="var1">
bootstrap.properties:
var1=AB var2=BC
答案 1 :(得分:1)
根据Liberty文档,对bootstrap.properties文件中的所有变量执行路径规范化
用单个替换重复的向前和向后斜杠 正斜杠,除非该值以双向前或向后开始 斜线,保持不变。
然而,根据他们的&#34;最佳实践&#34; section:
如果需要设置变量的值以包含重复前进 斜杠,有时用于JDBC驱动程序连接URL,中断 将值分为两个部分的双斜线。通过放置双 正斜杠作为初始字符,避免了规范化。 例如,要存储值&#34; jdbc:db2://host_name.com&#34;,请使用两个 变量:
URL_PART_1 =&#34; JDBC:DB2:&#34; URL_PART_2 =&#34; // host_name.com&#34;