跳到导航
BEA Dev2Dev Oracle and BEA
首页 资源中心 dev2dev学堂 在线技术论坛 User Group CodeShare
WebLogic Portal 8.1 SP4:在多字节环境中使用

WebLogic Portal 8.1 SP4 的注意事项
限制
已知问题
已解决问题

WebLogic Portal 8.1 SP4 的注意事项

为 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 文件。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 时,必须执行以下设置步骤。
  1. 更改或添加 JSP ContentType
    <%@ page language="java" contentType="text/html;charset=Shift_JIS"%>
  2. 更改或添加 weblogic.xml jsp-param
      <jsp-param>
    <param-name>encoding</param-name>
    <param-value>Shift_JIS</param-value>
    </jsp-param>
  3. 更改 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>


  4. 更改 Portal 文件

    .portal 文件中包含 ContentType 设置,标准设置为 UTF-8。
    如果使用 Shift_JIS,必须进行以下更改。
    <portal:directive.page contentType="text/html;charset=Shift_JIS"/>



    更改方法
    1. 在 Workshop 菜单中选择“工具”->“应用程序属性”。
    2. 在对话框中选择“协议”,并选中“作为 XML 打开”
    3. 用鼠标右键单击创建的 .portal 文件,并选中“作为 XML 打开”
    4. 此时,您可以编辑 portal 文件的源代码。
  5. 流显示


    使用 WebLogic Administration Portal 基于采用 Shift_JIS 创建的门户来创建桌面时,必须更新门户数据库表。

    更新对象表:L10N_LOCALE

    更新对象列:ENCODING(标准编码为 UTF-8)



    更改方法

    执行如下所示的步骤。
    1. 部署门户应用程序。
    2. 启动 WebLogic Administration Portal 并登录。
    3. 对于数据库中的 L10N_LOCALE 表,将“LANGUAGE”列(对应的行为 ja)的“ENCODING”列中的 UTF-8 更改为 Shift_JIS。
    4. 使用 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 文件时,请确保将布局文件中的组件的语言设置为“ja”。否则,在显示流期间使用边框布局的页面可能显示不正确。
在门户应用程序中添加布局、外壳和外观及感觉的日语注册信息的方法
屏幕上将显示以下门户管理消息。



尚未设置 [ja] 区域的标题。



这是因为没有为布局、外壳和外观及感觉等门户骨架注册日语信息。默认情况下仅包含“en”的注册信息。要正确显示其他区域,必须执行下列操作。

对于朝鲜语、简体中文和繁体中文,会分别显示“[ko]”、“[zh_CN]”或“[zh_TW]”。



PortalAdmin 中的设置:
  1. 启动 portalAdmin
    (将浏览器语言设置为“en”)
  2. 选择“PortalResources”->“布局”
  3. 对于树中显示的每一项,选择“添加新区域”。
    (设置要添加的语言,如“ja”,然后描述标题。)
  4. 将浏览器恢复初始语言设置,并重新显示。

通过执行上述步骤,布局、外壳和外观及感觉的注册信息将存储在数据库(表名: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


 

限制
  1. 使用 Administration Portal 时,必须使用 Internet Explorer。(有关版本信息,请参阅“支持的平台”页上的“支持的 Web 浏览器”。)某些情况下,Netscape Navigator 不能完全正确地处理日语。
  2. 不要在下列名称中使用多字节字符。否则,可能会出现错误。
    • 应用程序名称 (Workshop)
    • 门户 Web 项目名称 (Workshop)
    • 为门户 Web 项目新建的所有文件 (Workshop)
    • Content-management-type 属性文件 (Administration Portal)
    • 服务管理可以使用的所有输入/输出字段 (Administration Portal)
  3. 使用远程 portlet 时,在生成器和使用者两端使用相同的字符编码。如果两者不同,则会出现错误。
  4. 在 WebLogic Portal 8.1 SP4 中添加的下列功能不能直接使用多字节字符。要使用多字节字符,必须通过诸如 native2ascii 一类的方法使用 Unicode 转义字符。
    • 交互作用管理内容搜索编辑器
    • Workshop 内容搜索详细信息选项卡





已知问题
  • 内容管理的内容创建/编辑日期
    内容管理的内容创建/编辑日期以 dd-mm-yyyy US 区域日期表示法显示。
  • 发送宣传商业活动的电子邮件
    如果通过电子邮件发送的商业活动文档是在 UTF-8 环境中创建的,则传送的结果将为无效字符。

    解决办法:必须在 JSP 文件(描述要发送的文档)的 contentType 指令中指定系统默认编码。
  • Administration Portal 联机帮助的搜索功能中出现的问题
    在日语版的 SP4 Administration Portal 联机帮助中使用搜索功能时,已知会发生下列问题:
    • 不能使用多字节字符作为关键字。
    • 包含多字节字符的搜索结果是乱码。

    解决办法:请在 e-docs 的日语版网站 (http://edocs.beasys.co.jp/e-docs/wlp/docs81/adminportal/index.html) 中使用搜索功能。



已解决问题
  • 创建 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() 方法。



    日语输出示例:
    1. 新建 portlet,然后从 portlet 向导中选择 Java portlet。
    2. 选择新建 portlet
    3. 在向导设置中输入以下值
      标题:Hello World(日语)

      定义标签: helloworld

      类名称: example.portlet.HelloWorld
    4. 单击“完成”按钮
    5. 打开 WEB-INF/src/example/portlet/HelloWorld.java
    6. 如下所示编辑内容
      编辑前
      public class HelloWorld extends GenericPortlet
      {
          public void doView(RenderRequest request, RenderResponse response) 引发 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) 引发 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 SP4 中使用的 JRockit 的版本为 JRockit 8.1 SP4。不必应用以下修补程序,这些修补程序是使用 JRockit 8.1 SP2 时必需的。


    如果在 32 位多字节环境中使用 JRockit,请安装 JRockit8.1SP2 RP1 或更高版本,或者安装 SP3 或更高版本。