マルチバイト環境での使用にあたって
本ドキュメントでは、BEA AquaLogic Service Bus 2.1 をマルチバイト環境下で使用する場合の既知の問題点や注意点を記述しています。含む内容は以下の通りです。
本章では、BEA AquaLogic Service Bus 2.1 をマルチバイト環境上での使用にあたり、必要な準備や注意点を記述しています。
XQuery Mapperでマルチバイト文字を正しく表示す るためには、Eclipseのフォント設定を手動で行わなければならない場合があ ります。設定する手順は、メニュー [Window - Preferences] を開き、次にそ の中の [General - Appearance - Colors and Fonts] を選択します。右側に 表示される色とフォントのリスト中で xxxx Font という名前の要素を選び、 [Change...]ボタンをクリックします。それにより表示されたダイアログ中の 文字セットを適切な言語に変更してください。
XQuery MapperはEclipse 3.1.1をベースにしてい ますが、インストーラにはEclipse言語パックは含んでおりません。言語パッ クは以下のページからダウンロード可能です。但し、BEAでは言語パックを適 当した状態での動作確認は行っておりません。
http://www.eclipse.org/downloads/index.php
本章では、BEA AquaLogic Service Bus 2.1 にお いて施された修正または機能強化により生じたv2.0からの重要な変更点につい て記述しています。
v2.1では、任意のエンコーディングでエンコードされたquery-stringを扱 えるように機能強化されました。以下、プロキシサービス側とビジネスサービ ス側に分けて説明します。
【プロキシサービス】
v2.0では、URLエンコードされたquery-stingは、UTF-8を基にしてエンコード
されているものとして一律処理されていました。v2.1ではプロキシせービス定
義時に要求エンコーディングに指定する事で、任意のエンコーディングに対応
できるように変更されました。以下の優先度で処理されます。
*注1) 実装上の都合により、HTTPヘッダ内のContent-Type/charset属性が最優先されますが、 GETメソッドにおいてHTTPヘッダが指定される事は一般的ではないと考えられ るため、実質的には要求エンコーディングが優先して使用されます。
【ビジネスサービス】
v2.0ではビジネスサービスそれ自身はURLエンコーディングを行う能力を有し
ていませんでした。v2.1ではビジネスサービスにURLエンコード機能が追加さ
れ、またサービス定義時に指定された要求エンコーディングをベースエンコー
ディングに用いる事で、任意のエンコーディングに対応できるように変更され
ました。以下の優先度で処理されます。
*注2) これはつまり、query-stringにマルチバイト文字が含まれる場合は、必ず要求エンコーディングを指定する必要があります。
v2.0では、FileおよびFTPトランスポート上でXMLメッセージを扱う場合、 プロキシ設定の要求エンコーディングと実際のXMLファイルのエンコーディン グを必ず一致させる必要がありました。(旧版「既知の問題」参照) v2.1ではこの点を強化し、要求エンコーディングを指 定していない場合は、XMLファイル内のencoding宣言を参照して処理するよう になりました。v2.1では以下の優先度で処理が行われます。
v2.1ではHTTPおよびe-mailトランスポートでのエンコーディングハンドリングが見直されました。主な変更点は以下の通りです。またv2.1での各トランスポートでのエンコーディングハンドリングを「BEA AquaLogic Service Bus エンコーディングハンドリング」にまとめてありますので参照してください。
本章では、BEA AquaLogic Service Bus 2.1 におけるマルチバイト環境上での使用について、既知の問題を記述しています。
製品を、マルチバイト文字を含むディレクトリ配下にインストールした場合、XQuery Mapperが正しく起動しません。
回避策: 以下のファイルの内容を、JDKが提供するnative2asciiコマンドを実行して得られた結果に置き換えてください。以下に実行例を示します。(Windows上の例)
% cd c:\bea\eclipse301\links % ren com.bea.wli.ide.mapper.feature.link com.bea.wli.ide.mapper.feature.link.bak % c:\bea\jrockit90_150_03\bin\native2ascii com.bea.wli.ide.mapper.feature.link.bak com.bea.wli.ide.mapper.feature.link
本章では、BEA AquaLogic Service Bus におけるマルチバイト環境下での制限事項に関して記述しています。
アラート発生時の処理として"JMS送り先にアラートを送信"を選択した場合、送信されるメッセージはBytesMessage型になります。(Text型は現在指定できません) この内容は、"要求エンコーディング"で指定したエンコーディングでエンコードされたbyte配列になります。
FormatBuilderにおいて、デリミタとしてマルチバイト文字を使用することはできません。
v2.1より、URLを指定して外部のService Busサーバーからリソースを取得する機能が追加されました。この時指定するURLの形式は以下のようになります。
http://localhost:7021/sbresource?WSDL/[project name]/[folder name]/[resource name]
[project name]はリソースが登録されているプロジェクトの名前
[folder name]はリソースが登録されているフォルダの名前
[resource name]はリソースの名前
これらプロジェクト、フォルダ、リソース名にマルチバイト文字を使用しているリソースを取得する場合は、UTF-8を用いてURLエンコードを施した文字列を指定する必要があります。
v2.1から、.zipまたは.jarファイルを指定してリソースをロードする事が可能になりました。([プロジェクトエクスプローラ]-[リソースの作成]-[バルク]-[zip圧縮リソース]) 本機能では、zipファイル内にマルチバイトを含むファイル名を持つ場合、正しく処理できません。マルチバイトファイル名を含む場合はjarファイルを使用する必要があります。
以下の問題は本リリース(v2.1)で修正されています。問題の詳細に関しては、旧版対応ドキュメントを参照してください。