2012-03-29 12 views
1

これは私のearlier questionの拡張です。DXL経由でエクスポートしたときのSSJSライブラリのエンコーディングスキーム

<item name="$ServerJavaScriptLibrary" sign="true"> 
<rawitemdata type="1"> 
....ENCODED SSJS.... 
</rawitemdata> 
</item> 

私は以前、ここで使用される符号化スキームはBase64であることを考えた:私たちはDXLにSSJSライブラリをエクスポートすると、我々はこれを含む出力を得ます。しかしSSJSライブラリをインポートするのに失敗した後、私はそうではないと思います。検索中にtype="1"TYPE_COMPOSITEを指しているのに対し、type="14 "はBase64を指しています(私が間違っていると私を修正してください)。type="14"をXMLファイルに入れて、rawitemdataタグにBase64エンコードコードを入れてみました。ファイルをインポートします。これは、データベースにSSJSライブラリを作成したが、その内容は空白だった。

それはBase64でそれを符号化することにより、テーマをインポートしている場合、私はthis linkを見つけたが、それは「YQAYAAAAAAA6AAAAAQAAAAAAAAAAAAAAYABMAAAAOgA6AAAAAAAAAAAA」でエンコードされた文字列を付加します。私が先頭に追加してみましたそれを私のコード化されたSSJSコードに入れてインポ​​ートしますが、まだ失敗します。

私のデータベースのSSJSコード?

答えて

1

SSJSライブラリは、リッチテキストレコードに格納されています。 SSJSライブラリのデータの前のエンコードされた文字列は、これらのレコードのbase64でエンコードされたヘッダー情報です。ここで

あなたはカプセル化し、データベースにDXLとSSJSライブラリをインポートする方法を実施例を見つけることができます。この中 Quick-n-Dirty: Import SSJS libraries with DXL

+0

ありがとうトーン・スヴェン!コードが機能しました。ローカルマシンで試してみました。そのために、 'sessionAsSignerWithFullAccess'の使用を' session'に置き換えなければなりませんでした。しかし、インポートしたファイルを最後に開くと、特別な文字(黒い四角で囲んだもの)、スペース、「s」と「d」の4つの余分な文字が表示されます。なぜどんなアイデア?私はローカルマシンでこれを実行しているからですか? captchaの正しい単語を入力したにもかかわらず、メッセージ「FEHLER:読めないCAPTCHAトークンファイル」を表示し続けるので、あなたのブログでこれをコメントすることはできませんでした。 – Naveen

+0

@Naveen:フィードバックいただきありがとうございます。最後のWPアップデートがcaptchaプラグインを抹消しました。今度は再び動作します。あなたの質問に:うーん、現在、私はあなたのSSJSライブラリのコードですので、最後に "余分な"文字を説明することはできません。これはすべての*ライブラリ、または特定のライブラリの一般的な問題ですか? –

+0

少しの試行錯誤の後、私は興味深い観察を見つけました。 'test1 = function(){}'のような関数をインポートしようとすると。次に、インポートされたスクリプトライブラリに問題はありません。しかし、 'function test1(){}'のような関数をインポートしようとすると。インポートされたスクリプトライブラリは、最後に特殊文字を持ちます。どうしてか分かりません! Problemsビューのエラーは、このメッセージの 'Line 17、column 2の字句エラーです。遭遇しました:" "の後に" \ u25a0 "(9632)です。なぜどんなアイデア?また、私はあなたのブログにコメントすることができず、投稿しようとするたびに「迷惑メールが削除されました」というメッセージが表示されました。 – Naveen

0

先頭に追加される文字列はチェックサムです。ライブラリをDXLにエクスポートするとき、Base64には、インポータがコンテンツを検証できるようにする接頭辞が含まれています。このチェックサム手法は、XPageおよびカスタムコントロールの設計要素をDXLにエクスポートするときにも使用されます。したがって、このDXLをエクスポートしたときとまったく同じようにインポートすると、インポートは成功します。ただし、エンコードされたコンテンツを変更して同じ接頭辞を付けると、チェックサムが一致しなくなるため、インポートが失敗します。

外部から生成された設計要素のインポートを許可するために、このチェックサムを生成するためにどのアルゴリズムが使用されているのか、まだ応答を受け取っていないという情報をIBMから要求しました。

+0

最後に、返信... :) [リンク](のhttp://エルメス.intec.co.uk/Intec/Blog.nsf/dx/Import%20agent.txt/$ file/Import%20agent.txt)コードはテーマをインポートし、Base64でエンコードします。それを ''タグに置き換えます。あなたがこれからアイディアを得たら、教えてください。 – Naveen

関連する問題