我们正在使用 WLST(Weblogic 脚本语言)来设置我们的 Weblogic 域和托管服务器。现在我们想在全球范围内强制使用 UTF-8 字符编码。
我在这里找到了方法。
setDefaultCharCodeset(String codeset)
..这似乎正是我们所需要的:它将默认字符集设置为某个指定值。现在,此方法在 Weblogic MBean 上定义 - 并且可以通过使用 cmo(“当前管理对象”)。
例如:如果我们有一个名为的服务器,Foo
我们可以执行
cd('/Servers/Foo')
cmo.setDefaultCharCodeset('UTF-8')
我的问题是:MBean/管理对象的属性是否以某种方式通过层次结构传播?
如果我将字符集设置在根级别会发生什么?
cd('/')
cmo.setDefaultCharCodeset('UTF-8')
这会强制全局使用 UTF-8 吗?还是我们需要为每个托管服务器专门设置它?
PS 我们在 Solaris 11 上使用 WLS 12c 运行带有 Oracle 后端的各种 J2EE 应用程序。
答案1
事实证明上面的代码是错误的:
是defaultCharCodeset
IIOP MBean 的一个字段,而不是 Server MBean(也不是域 MBean)。另一方面,IIOP MBean 是 Server MBean 的一个子级。
我发现它是这样的:find('defaultCharCodeset')
,它给了我很好的输出,关于这个字段在 WLST 配置树中显示的位置:
/Servers/AdminServer/IIOP/AdminServer DefaultCharCodeset US-ASCII
/Servers/app_1/IIOP/app_1 DefaultCharCodeset US-ASCII
...
(app_1 is a managed server we defined)
因此,正确的做法似乎是:
cd('/Servers/app_1/IIOP/app_1)
cmo.setDefaultCharCodeset('UTF-8')
...