Adobe または BlazeDS の実装に基づいた Flex/AMF3 アプリケーションのテストには、Java Development Kit 1.5 以降が必要です。
GraniteDS の実装に基づいた Flex/AMF3 アプリケーションのテストには、Java Development Kit 1.6 以降が必要です。
HTTP ヘッダー Content-Type が "application/x-amf" に設定されている HTTP 要求と応答では変換が有効になっています。別の HTTP コンテンツ タイプ ヘッダーを使用してデータを変換する必要がある場合は、以下のステップを参照してください。カスタム コンテンツの変換 - タイプ を参照してください。
Adobe または BlazeDS の実装に基づいた Flex/AMF3 アプリケーションのテストを行う場合は、プロジェクトの概要設定 ダイアログで Flex/AMF3 (Adobe) アプリケーション タイプを選択します。
GraniteDS の実装に基づいた Flex/AMF3 アプリケーションのテストを行う場合は、プロジェクトの概要設定 ダイアログで Flex/AMF3 (GraniteDS) アプリケーション タイプを選択します。
WebPagePost(WebEngine: 82 - コンテンツ変換エラー, RESPONSE: AMF3:Java ベースの XML を生成できません (fallback を使用)、理由: org.granite.messaging.amf.io.AMF3SerializationException ... Caused by: java.lang.RuntimeException: The ActionScript3 class bound to org.granite.example.addressbook.entity.Person (ie: [RemoteClass(alias="org.granite.example.addressbook.entity.Person")]) implements flash.utils.IExternalizable but this Java class neither implements java.io.Externalizable nor is in the scope of a configured externalizer (please fix your granite-config.xml) ...
JVM を使用するには、正しい XML 表現にシリアル化するために必要なクラスを含む Flex/AMF3 アプリケーション固有のカスタム JAR ファイルを構成する必要があります。そのため、Flex/AMF3 スクリプトを作成するときには、スクリプトの作成 ダイアログに JAR ファイルの追加 ボタンが表示されます。このボタンをクリックして、テスト対象のアプリケーションに固有のカスタム JAR ファイルを、必要なだけ参照して 追加 します。追加した JAR ファイルは、プロジェクト ツリーの データ ファイル ノードに表示されます。
これらの必要な JAR ファイル (または個々の .class ファイル) は、テスト対象のサーバーにあります。これらのファイルは、手動で準備し、サーバーから Silk Performer コントローラ マシンへコピーしておく必要があります。ただし、個々の .class ファイルをアーカイブに配置するだけでよい場合もあります。
スクリプトの作成 ダイアログで 設定 をクリックすると、現在のユーザー プロファイルの Java 設定 タブが直接表示されます。このタブで、現在選択されているユーザー プロファイルの Java 設定を変更します。
Apache Flex 2、3、4 および BlazeDS 3.2.0 の基本 JAR ファイルは、C:\Program Files(x86)\Silk\Silk Performer <バージョン>\ClassFiles\Adobe-Flex ディレクトリにインストールされます。この JAR ファイルは、クラスパスに自動的に追加されます。新しいバージョンの flex-messaging-common.jar および flex-messaging-core.jar をディレクトリにコピーすると、これらのファイルを手動で更新できます。
GraniteDS 2.3.2 の基本 JAR ファイルは、C:\Program Files(x86)\Silk\Silk Performer <バージョン>\ClassFiles\GraniteDS ディレクトリにインストールされます。この JAR ファイルは、クラスパスに自動的に追加されます。このディレクトリ内の JAR ファイルを置き換えると、これらのファイルを手動で更新できます。
ユーザーの操作を記録する際に、Silk Performer Recorder は、記録したセッションのトラフィック全体を含む Silk Performer キャプチャ ファイルというファイルを作成します。保存後に、キャプチャ ファイルは Workbench で開かれ、続いて分析および処理を行うことができます。キャプチャしたトラフィックからスクリプトを生成する前に、記録ルールや他の設定を変更して、スクリプト生成処理に適用させることができます。
エラーが発生した場合、問題の解決 領域にあるボタンをクリックして問題を解決します。その後、スクリプトの生成 をクリックして、キャプチャ ファイルからスクリプトを生成します。
Java 構成が正しくなければ (たとえば JAR ファイルが見つからないなど)、XML レスポンス (TrueLog Explorer でのみ表示可能) は読みやすい形式で生成されません。また、[仮想ユーザー] 出力ペインに警告またはエラーが書き込まれます。通常、エラーや警告では、その原因がリクエスト (クライアントからサーバーへ) にあるのかレスポンス (サーバーからクライアントへ) にあるのかが示されます。
AMF3 スクリプト内部の XML オブジェクトの全体構造を変更しないでください。値の解析や検証関数の挿入は構いませんが、AMF3 XML 要素の削除や移動を行うと呼び出しがうまくいかなくなります。また、配列内の要素の順序も変更しないでください。
コマンド メッセージの例:
<AmfXml version="3"> <Msg length="203" operation="null" responseURI="/1"> <StrictArray nrElems="1"> <Amf3> <JavaObject> <flex.messaging.messages.CommandMessage> <destination></destination> <messageId>3EE7E87A-96E6-3272-30F7-FFEF6B9EFE9E</messageId> <timestamp>0</timestamp> <timeToLive>0</timeToLive> <headers> <entry> <string>DSId</string> <string>nil</string> </entry> </headers> <body class="flex.messaging.io.amf.ASObject" serialization="custom"> <unserializable-parents></unserializable-parents> <map> <default> <loadFactor>0.75</loadFactor> <threshold>12</threshold> </default> <int>16</int> <int>0</int> </map> <flex.messaging.io.amf.ASObject> <default> <inHashCode>false</inHashCode> <inToString>false</inToString> </default> </flex.messaging.io.amf.ASObject> </body> <correlationId></correlationId> <operation>5</operation> </flex.messaging.messages.CommandMessage> </JavaObject> </Amf3> </StrictArray> </Msg> </AmfXml>
リモーティング メッセージの例:
<?xml version='1.0' encoding='UTF-8'?> <AmfXml version="3"> <Msg length="394" operation="null" responseURI="/4"> <StrictArray nrElems="1"> <Amf3> <JavaObject> <flex.messaging.messages.RemotingMessage> <clientId class="string">208F18FC-6F0D-9964-3746-76438D73A6A3</clientId> <destination>myextservice</destination> <messageId>A98651D4-690D-E530-B744-FFEF866937C7</messageId> <timestamp>0</timestamp> <timeToLive>0</timeToLive> <headers> <entry> <string>DSId</string> <string>208F0A62-A409-8994-08AF-223CD381602C</string> </entry> <entry> <string>DSEndpoint</string> <string>my-amf</string> </entry> </headers> <operation>setMyExtClass</operation> <parameters> <com.borland.silkperformer.flex.samples.MyExt> <string>string1</string> <string>string2</string> <string>string3</string> <boolean>true</boolean> <date>2009-03-13 14:05:01.545 CET</date> </com.borland.silkperformer.flex.samples.MyExt> </parameters> </flex.messaging.messages.RemotingMessage> </JavaObject> </Amf3> </StrictArray> </Msg> </AmfXml>
確認応答メッセージの例:
<?xml version='1.0' encoding='UTF-8'?> <AmfXml version="3"> <Msg operation="/5/onResult" responseURI=""> <Amf3> <JavaObject> <flex.messaging.messages.AcknowledgeMessage> <clientId class="string">208F18FC-6F0D-9964-3746-76438D73A6A3</clientId> <messageId>20903C27-020C-F5E6-68E7-C8175449798D</messageId> <timestamp>1236954453026</timestamp> <timeToLive>0</timeToLive> <body class="com.borland.silkperformer.flex.samples.MyExt"> <string>some string</string> <com.borland.silkperformer.flex.samples.MyExt> <string>string1</string> <string>string2</string> <string>string3</string> <boolean>true</boolean> <date>2009-03-13 14:04:58.14 CET</date> </com.borland.silkperformer.flex.samples.MyExt> <string>GET</string> <string>string</string> <boolean>true</boolean> <date>2009-03-13 14:05:01.545 CET</date> </body> <correlationId>C4BD7297-67CB-84AB-0C1A-FFEF8DEB3A97</correlationId> </flex.messaging.messages.AcknowledgeMessage> </JavaObject> </Amf3> </Msg> </AmfXml>