WebLogic Portal 8.1 SP5:在多字节环境中使用
WebLogic Portal 8.1 SP5 的注意事项 限制 已知问题 已解决问题
WebLogic Portal 8.1 SP5 的注意事项
为 Portlet 图标和消息(日语)制作弹出式文本
netuix-config.xml 文件中包含 portlet 图标的弹出式文本,您可以添加如下(粗体部分)日语文本。
<!-- 支持容器的窗口状态 -->
<window-state name="minimized">
<activate-image>titlebar-button-minimize.gif</activate-image>
<deactivate-image>titlebar-button-unminimize.gif</deactivate-image>
<alt-text>
<locale language="ja">
<activate>Minimize(日语)</activate>
<deactivate>Restore(日语)</deactivate>
</locale>
<locale language="en">
<activate>Minimize</activate>
<deactivate>Restore</deactivate>
</locale>
</alt-text>
</window-state>
使用 Workshop 创建门户 Web 项目时,将在 WEB-INF 下的子级文件夹中创建 netuix-config.xml 文件。%WL_HOME%\workshop\templates\portal-project.zip 作为模板的一部分,位于 portal.war 文件中。
以上示例是针对日语的。对于朝鲜语和中文,请将“ja”分别改为“ko”或“zh”。
创建基于 Shift_JIS 的门户应用程序的方法
此处说明的是针对日语的例子:
要基于 Shift_JIS 使用 JSP 或 PageFlow 创建门户应用程序,请添加独立的 JSP 或 PageFlow 设置,然后为门户本身进行相应设置。
首先,使用 Shift_JIS 设置创建 JSP 或 PageFlow 时,必须执行以下设置步骤。
- 更改或添加 JSP ContentType
<%@ page language="java" contentType="text/html;charset=Shift_JIS"%>
- 更改或添加 weblogic.xml jsp-param
<jsp-param>
<param-name>encoding</param-name>
<param-value>Shift_JIS</param-value>
</jsp-param>
- 更改 Web 应用程序字符编码
从 Workshop 菜单中打开 Web 应用程序的字符编码设置屏幕(单击“工具”->“应用程序属性”->“编码”)。取消选择“使用默认值 (UTF-8)”,并在编码输入字段中设置“Shift_JIS”。
注意:如果使用 PortalProject,必须执行 3-a 中的设置步骤。
3-a. 添加 weblogic.xml 字符集参数。
<charset-params>
<input-charset>
<resource-path>/*</resource-path>
<java-charset-name>Shift_JIS</java-charset-name>
</input-charset>
</charset-params>
删除 web.xml 文件下的描述符。
<context-param>
<param-name>weblogic.httpd.inputCharset./*</param-name>
<param-value>UTF-8</param-value>
</context-param>
- 更改 Portal 文件
.portal 文件中包含 ContentType 设置,标准设置为 UTF-8。 如果使用 Shift_JIS,必须进行以下更改。
<portal:directive.page contentType="text/html;charset=Shift_JIS"/>
更改方法
- 在 Workshop 菜单中选择“工具”->“应用程序属性”。
- 在对话框中选择“协议”,并选中“作为 XML 打开”
- 用鼠标右键单击创建的 .portal 文件,并选中“作为 XML 打开”
- 此时,您可以编辑 portal 文件的源代码。
- 流显示
使用 WebLogic Administration Portal 基于采用 Shift_JIS 创建的门户来创建桌面时,必须更新门户数据库表。
更新对象表:L10N_LOCALE
更新对象列:ENCODING(标准编码为 UTF-8)
更改方法
执行如下所示的步骤。
- 部署门户应用程序。
- 启动 WebLogic Administration Portal 并登录。
- 对于数据库中的 L10N_LOCALE 表,将“LANGUAGE”列(对应的行为 ja)的“ENCODING”列中的 UTF-8 更改为 Shift_JIS。
- 使用 WebLogic Administration Portal 创建桌面。
此后,创建的所有桌面都是以 Shift_JIS 为基础的。
补充内容 1. 表更新计时
必须在 L10N_LOCALE 表中更改以下两行所对应的“ENCODING”列:“LANGUAGE”为 ja 且“COUNTRY”为 JP 的行,以及“LANGUAGE”为 ja 的行。部署门户应用程序时会自动创建“LANGUAGE”为 ja 且“COUNTRY”为 JP 的行。但是,由于所创建的门户应用程序的内容,部署时不会注册“LANGUAGE”为 ja 的行。这种情况下,登录到 WebLogic Administration Portal 时将自动创建该行。因此,更可靠的方法是登录到 WebLogic Administration Portal 后再对表进行更改。
示例:Oracle9i 列更新
SQL> UPDATE L10N_LOCALE SET ENCODING='Shift_JIS' WHERE LANGUAGE='ja'; 更新两列。
SQL> commit;
创建 .layout 文件时的警告
创建 .layout 文件时,请确保将布局文件中的 <netuix:locale> 组件的语言设置为“ja”。否则,在显示流期间使用边框布局的页面可能显示不正确。
在门户应用程序中添加布局、外壳和外观及感觉的日语注册信息的方法
屏幕上将显示以下门户管理消息。
尚未设置 [ja] 区域的标题。
这是因为没有为布局、外壳和外观及感觉等门户骨架注册日语信息。默认情况下仅包含“en”的注册信息。要正确显示其他区域,必须执行下列操作。
对于朝鲜语、简体中文和繁体中文,会分别显示“[ko]”、“[zh_CN]”或“[zh_TW]”。
PortalAdmin 中的设置:
- 启动 portalAdmin
(将浏览器语言设置为“en”)
- 选择“PortalResources”->“布局”
- 对于树中显示的每一项,选择“添加新区域”。
(设置要添加的语言,如“ja”,然后描述标题。)
- 将浏览器恢复初始语言设置,并重新显示。
通过执行上述步骤,布局、外壳和外观及感觉的注册信息将存储在数据库(表名:L10N_RESOURCE)中。(对于朝鲜语、简体中文和繁体中文,“ja”将改为“ko”、“zh_CN”或“zh_TW”等。)
Workshop 中的设置:
骨架文件(如 fourcolumn.layout、text.laf 等)位于在 Workshop 中创建的门户 Web 项目的 framework\markup\ 文件夹中。如果事先将这些文件中的区域值设置为“ja”,将不会显示上述消息。%WL_HOME%\workshop\templates\portal-project.zip 作为模板的一部分,位于 portal.war 文件中。(对于朝鲜语、简体中文和繁体中文,“ja”将改为“ko”或“zh”等。)
支持日语搜索功能
为使搜索功能能够处理日语,必须通过以下链接下载亚洲区域软件包,并将其应用于该产品。
注意:RedHat Linux 不支持日语。
Windows:
Solaris:
为了应用亚洲区域软件包,请将相应文件解压缩到以下目录中。
- Windows:%BEA_HOME%\weblogic81\portal\thirdparty\search\windows
- Solaris:$BEA_HOME/weblogic81/portal/thirdparty/search/solaris
应用亚洲区域软件包之后,请参考:
%WEBLOGIC_HOME%\portal\thirdparty\search\common\docs\dre\dre4_axe_4.3.pdf,
然后针对使用的语言(日语、朝鲜语、简体中文等)进行必要的设置。下面是获得日语支持所必需的设置的示例。
在 PortalSearchDRE.cfg 中:
Windows:
[JapaneseSJIS] LanguageCode=31 SentenceBreaking=..\langfiles\japanesebreaking.dll Language=JAPANESE Encoding=SHIFTJIS [LanguageTypes] DefaultLanguageType=japaneseSJIS
关于使用 SQL Server 的说明
在使用样例脚本 WL_HOME\portal\db\sql_server\2000\admin\create_database.sql 文件(用来创建数据库)创建了一个数据库时,门户应用程序中可能会出现异常行为。
使用脚本创建数据库时,需要适当地修改脚本文件的内容。
此修改的某些示例如下所示。
修改示例
修改前
line 26:COLLATE SQL_Latin1_General_CP1_CS_AS
line 33:exec sp_addlogin 'WEBLOGIC', 'WEBLOGIC', 'WEBLOGIC', 'us_english'
修改后
line 26:COLLATE Japanese_CS_AS_KS_WS
line 33:line:exec sp_addlogin 'WEBLOGIC', 'WEBLOGIC', 'WEBLOGIC', 'japanese'
限制
- 使用 Administration Portal 时,必须使用 Internet Explorer。(有关版本信息,请参阅“支持的平台”页上的“支持的 Web 浏览器”。)某些情况下,Netscape Navigator 不能完全正确地处理日语。
- 不要在下列名称中使用多字节字符。否则,可能会出现错误。
- 应用程序名称 (Workshop)
- 门户 Web 项目名称 (Workshop)
- 为门户 Web 项目新建的所有文件 (Workshop)
- Content-management-type 属性文件 (Administration Portal)
- 服务管理可以使用的所有输入/输出字段 (Administration Portal)
- 使用远程 portlet 时,在生成器和使用者两端使用相同的字符编码。如果两者不同,则会出现错误。
- 在 WebLogic Portal 8.1 SP4 中添加的下列功能不能直接使用多字节字符。要使用多字节字符,必须通过诸如 native2ascii 一类的方法使用 Unicode 转义字符。
- 交互作用管理内容搜索编辑器
- Workshop 内容搜索详细信息选项卡
- 在 XIP Tool 的设置文件 (xip.properties) 中,提供了一个名为 xip.output.encoding 的参数,该参数用来指定文件输入/输出的编码。该参数默认设置为 UTF-8,设置为任何非 UTF-8 值都将导致在导出时出现不正确的 XML 文件输出。因此应使用 xip.output.encoding 参数的默认值。
已知问题
- 内容管理的内容创建/编辑日期
内容管理的内容创建/编辑日期以 dd-mm-yyyy US 区域日期表示法显示。
- 发送宣传商业活动的电子邮件
如果通过电子邮件发送的商业活动文档是在 UTF-8 环境中创建的,则传送的结果将为无效字符。
解决办法:必须在 JSP 文件(描述要发送的文档)的 contentType 指令中指定系统默认编码。
- 在传播实用工具中显示描述和详细信息
在使用传播实用工具导出/导入门户应用程序期间,如果显示其名称中含有多字节字符的角色和文件项目的描述或详细信息,则传播实用工具中可能会出现异常行为,导致后面的操作难以进行,因此,需要避免这样的尝试。如果不显示项目的描述或详细信息,即使存在使用多字节字符的角色名称或文件名称,导出/导入操作也可成功完成。
已解决问题
- 创建 Portlet 时必须执行的步骤
以下是过去使用 WebLogic Portal 8.1 SP2 创建 portlet 时必须执行的步骤,但现在已没有这种必要。
本地化验证
将以下描述符添加到 WEB-INF/netuix-config.xml 文件后,本地化才能有效。
<!-- 启用或禁用本地化 -->
<localization>
<enable>true</enable>
<default-locale language="en"/>
</localization>
- 在 Java Portlet 中显示日语的步骤
以下步骤是过去使用 WebLogic Portal 8.1 SP2 在 Java portlet 中显示日语所必需的,但现在已没有这种必要。无论使用 RenderRespnse 类的 getWriter() 方法还是 getPortletOutputStream() 方法,日语字符都会正确显示。
在 Java portlet 中显示日语
使用 portlet 向导创建 Java portlet 时,将自动生成用于在 portlet 中输出 Hello World 的代码。将此 Hello World 转换为日语时,如果应用程序编码保留为默认设置 (UTF-8),则会出现无效字符。为了正确输出日语,请使用 getPortletOutputStream() 方法,而不要使用 RenderRespnse 类的 getWriter() 方法。
日语输出示例:
- 新建 portlet,然后从 portlet 向导中选择 Java portlet。
- 选择新建 portlet
- 在向导设置中输入以下值
标题:Hello World(日语)
定义标签:
类名称:
- 单击“完成”按钮
- 打开 WEB-INF/src/example/portlet/HelloWorld.java
- 如下所示编辑内容
编辑前
public class HelloWorld extends GenericPortlet
{
public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException
{
response.setContentType("text/html");
response.getWriter().write("<p>Hello World</p>");
}
}
编辑后:
import java.io.OutputStream;
public class HelloWorld extends GenericPortlet
{
public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException
{
response.setContentType("text/html");
String message = "<p>Hello World!!(日语)</p>";
OutputStream os = response.getPortletOutputStream();
os.write( message.getBytes("UTF-8") );
}
}
- 样例门户
样例门户的 My Mail 中日语邮件正文内的无效字符问题已经得到更正。
- 使用 JRockit 8.1 SP2 的多字节环境
在 WebLogic Portal 8.1 SP5 中使用的 JRockit 的版本为 JRockit 8.1 SP5。不必应用以下修补程序,这些修补程序是使用 JRockit 8.1 SP2 时必需的。
对于 32 位环境,在非英语区域下使用 JRockit 时会出现问题。 在 32 位多字节环境中使用 JRockit 时,请安装 JRockit 8.1 SP2 RP1 及更高版本,或 SP3 及更高版本。
|