SDL Tridion 2013のストレージ拡張の変更


5

SDL Tridion 2013 SP1を使用して、Storage Extension(SDL Tridion 2011で作成され、SDL Tridion 2013 SP1と互換性があるようにアップグレードされました)を使用しています。このストレージエクステンションでは、公開される動的コンポーネントのコンポーネントプレゼンテーションを取得しようとしています。

これは、SDL Tridion 2011の前半で、コンポーネントプレゼンテーションを文字列として返すcom.tridion.Storage.ComponentPresentation.getContent()メソッドを使用して取得できます。ただし、SDL Tridion 2013 SP1では、stringの代わりにbyte[]としてコンポーネントプレゼンテーションを返すようにこのメソッドが更新されました。

私はCPの文字列プレゼンテーションを得ることができるいくつかの方法がありますか、どこにいてもコードを変更して、明示的にバイト[文字列を標準のJavaコードで文字列に変換するのは困ります。このバイト[]を文字列に変換すると、コンポーネントプレゼンテーションが公開されますか?私は同じ問題に直面して覚えておく

6

確かにcom.tridion.storage.ComponentPresentationクラスが変更されました。 を作成し、および更新メソッドを削除すると、コンポーネントプレゼンテーションのコンテンツがバイト配列として表示されるようになりました。

あなたは文字列の内容が必要な場合は、シンプル行うことができます:

@Override 
    public void create(
     ComponentPresentation itemToCreate, 
     ComponentPresentationTypeEnum componentPresentationType) throws StorageException 
    { 
     String actualContent = new String(itemToCreate.getContent(),"UTF-8"); 
    } 

3

感謝。 を「java-way」のStringに変換しました。私が覚えている限り、には公開されたコンテンツが含まれているので、Stringに変換すると、公開されたコンテンツが得られます。 UTF-8を公開している場合は、UTF-8を使用してください。

あなたのコードを更新する必要がありますか?新しいメソッドを使用する...

  0

おかげハイメ答えを。完全性とコードサンプルのためにRaiの答えを受け入れる:) 11 2月. 152015-02-11 12:49:07