扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:中国IT实验室 来源:中国IT实验室 2007年9月22日
关键字:
在本页阅读全文(共4页)
CGIServlet
将使用多字节字符的 CGI 服务迁移到 WebLogic Server 中的 CGI Servlet 时,必须在 CGI 程序生成的 HTTP 头中指定适当的 contentType 字符集参数。如果未设置 contentType,则使用 ISO-8859-1,它是 J2EE Servlet 容器的默认编码。
还必须使用 input-charset 参数,以便从客户端正确接收输入字符串。您需要将它写入到目标 Web 应用程序的 DD 文件中。如果未设置它,则使用 ISO-8859-1。
WebService
SOAP 消息及其编码的处理
接收 SOAP 消息
在 WebLogic Server Web Service 中,编码处理符合 SOAP1.1 和 SOAP1.2 规范(*注释 1)。SOAP 1.1 HTTP/SOAP 消息的媒体类型是“text/xml”,其编码处理在 RFC2376 中定义。对于 SOAP 1.2 HTTP/SOAP 消息,媒体类型是“application/soap+xml”,其编码处理在 RFC3023 中定义。这些 RFC 规范定义下列行为:
SOAP 1.1
SOAP 1.2
与 WebLogic Server 一样,WebLogic Workshop 也根据此规范进行操作。因此,对于使用 HTTP/SOAP 来调用 WebLogic Workshop 开发的 Web Service 的客户端,请确保指定了正确的 contentType 字符集。
发送 SOAP 消息
WebLogic Server 生成的所有 HTTP/SOAP 消息都以 UTF-8 编码。在生成过程中,会将“encoding=UTF-8”添加到 SOAP 消息的 HTTP 头中。
注意:以英语区域(locale)设置(例如在 UNIX 中指定 LANG=C)启动 WebLogic Server 时,在 SOAP 消息中只能使用 us-ascii 字符,不支持其他字符。如果要在 Web Service 中使用简体中文字符,请使用简体中文区域(locale)设置启动 WebLogic Server。
如果要在以英语区域设置启动的 WebLogic Server 上使用 us-ascii 之外的其他字符,请在 WebLogic Server 启动脚本文件中设置下列启动选项。这甚至可以使 WebLogic Server 在英语区域设置环境中以 UTF-8 生成消息。
注意:对于 SOAP 消息,强烈建议使用 UTF-8。
-Iweblogic.webservice.i18n.charset=utf-8
Web Service 主页
Web Service 主页是以服务器 VM 默认编码生成的。
UDDI 浏览器
UDDI 浏览器只支持 us-ascii 字符。它不能正确处理多字节字符。
XML --- StreamParser 中的多字节字符处理
要将编码信息添加到使用 XML 流 API 生成的 XML 头中,请按如下方式使用 ElementFactory 类的 createStartDocument():
XMLOutputStreamFactory factory = XMLOutputStreamFactory.newInstance();
XMLOutputStream output = factory.newOutputStream(new
OutputStreamWriter(new FileOutputStream(fname),"GB2312"));
output.add(ElementFactory.createStartDocument("GB2312","1.0"));
output.flush();
下面是关于使用 XML 流 API 解析包含简体中文字符的 XML 文档的说明。
当通过流为解析器提供输入时,请使用字节流。这可以启用解析器的 XML 编码自动检测。解析器可以生成字符流,该字符流使用由 XML 声明中的编码特性指定的编码,从而确保能够进行正确的解析。
当通过 Unicode 字符流提供输入时,解析器将忽略 XML 头中的编码设置。在这种情况下,用户负责提供适当的字符流。
JDBC
设置 WebLogic jDriver for Oracle 的使用环境
要使用 weblogic.jdbc.oci.Driver,请按如下所示设置环境。请注意,需要设置 jDriver 许可证。
指定 Oracle 的 bin 目录的路径和 WebLogic Oracle Oci 驱动程序本地库的 bin 目录的路径。请根据 Oracle 版本使用相应的 Oci 驱动程序。
对于 Oracle 8.1.7:%WL_HOME%\bin\oci817_8;d:\oracle\ora81\bin
对于 Oracle 9.0.1:%WL_HOME%\bin\oci901_8;d:\oracle\ora90\bin
NLS_LANG 的编码与 weblogic.codeset(jDriver for Oracle 的连接属性)的编码必须始终相同。
NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK
有关 NLS_LANG 与 weblogic.codeset 之间的关系的信息,请参阅“Configuring and Using WebLogic jDriver for Oracle”中的 Advanced Oracle Features。如果可以指定下列编码:为 Oracle 数据库指定 ZHS16GBK、为 NLS_LANG 指定 SIMPLIFIED CHINESE_CHINA.ZHS16GBK 以及为 weblogic.codeset 指定 MS936,则 Windows 平台上使用的字符集可以存储在 Oracle 数据库中。
现在,无需使用 WebLogic Server 的连接池,即可使用 WebLogic Server jDriver for Oracle。例如,可以直接从 JDBC 客户端(如 JSP 或 Servlet)连接到数据库。有关当 JDBC 客户端使用 WebLogic Server jDriver for Oracle 时的编程信息,请参阅“Configuring and Using WebLogic jDriver for Oracle”中的 Connecting to an Oracle DBMS。
如果使用连接池,需要在管理控制台中进行下列设置。有关如何设置连接池的详细信息,请参阅“Installing and Using WebLogic jDriver for Oracle”中“Installing WebLogic jDriver for Oracle”一章的 Setting Up a Connection Pools 部分。下面是设置样例。
URL:
jdbc:weblogic:oracle
Driver Class Name:
weblogic.jdbc.oci.Driver
Properties:
user=scott
password=tiger
server=ora81
weblogic.codeset=MS936
现在即可使用 WebLogic Server jDriver for Oracle。
设置 Oracle Oci 驱动程序的使用环境
d:\oracle\ora81\jdbc\lib\classes12.zip;d:\oracle\ora81\jdbc\lib\nls_charset12.zip
c:\oracle\ora81\bin
现在,无需使用 WebLogic Server 的连接池,即可使用 Oracle Oci 驱动程序。例如,可以直接从 JDBC 客户端(如 JSP 或 Servlet)连接到数据库。有关当 JDBC 客户端使用 Oracle Oci 驱动程序时的编程信息,请参阅 Oracle 文档。
如果使用连接池,需要在管理控制台中进行下列设置。下面是设置样例。
URL:
jdbc:oracle:oci8:@ora81
Driver Class Name:
oracle.jdbc.driver.OracleDriver
Properties:
user=scott
password=tiger
现在即可使用 Oracle Oci 驱动程序。
设置 Oracle 瘦驱动程序的使用环境
对于瘦驱动程序,不需要指定 NLS_LANG 环境变量。
d:\oracle\ora81\jdbc\lib\classes12.zip;d:\oracle\ora81\jdbc\lib\nls_charset12.zip
c:\oracle\ora81\bin
现在,无需使用 WebLogic Server 的连接池,即可使用 Oracle 瘦驱动程序。例如,可以直接从 JDBC 客户端(如 JSP 或 Servlet)连接到数据库。有关当 JDBC 客户端使用 Oracle 瘦驱动程序时的编程信息,请参阅 Oracle 文档。
如果使用连接池,需要在管理控制台中进行下列设置。下面是设置样例。
URL:
jdbc:oracle:thin:@jpsol1:1521:ora81
Driver Class Name:
oracle.jdbc.driver.OracleDriver
Properties:
user=scott
password=tiger
现在即可使用 Oracle 瘦驱动程序。
同时连接到编码不同的数据库时的限制
使用 OCI 驱动程序时,必须为 NLS_LANG 和 weblogic.codeset 指定相同的编码。如果这些参数设置为相同的值,将在 Oracle 端执行编码转换,因为您是作为具有特定 NLS_LANG 的客户端连接到 Oracle 端的。如果两个参数相同,则无论数据库的编码如何,都能成功进行连接。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者