2017-08-23 13 views
3

私はftfテンプレートファイルをalfrescoリポジトリに格納しています。このファイルのパス:/app:company_home/app:dictionary/cm:StarXpert_x0020_Workflow/cm:templates/cm:contentModelTemplate.ftlalfrescoリポジトリからFTLテンプレートファイルをロード

このFTLファイルを使用してXMLファイルを作成します。私のJavaバックアップWebscriptコントローラで、私はFTLファイルを取得したい、私はこれを達成するために多くの方法を使用して、何も動作しません。 私はこのコードを試してみました:

Template template=cfg.getTemplate("PATH:\"/app:company_home/app:dictionary/cm:StarXpert_x0020_Workflow/cm:templates/cm:contentModelTemplate.ftl\""); 

を私はまだ、このエラーを取得:

java.io.FileNotFoundException: Template "contentModelTemplate.ftl" not found

私もgetTemplate()メソッドへの参照としてそのnodeRefを渡すことで、テンプレートを取得しようとしましたが、また、それは作品ではありません。

以前にこれを行った人はいますか?どんな馬にも感謝します。

+0

このcfgサービスはどこにありますか?私はこれがスクリプトルートサービスだと思いますか? – Akah

+0

これは屋外サービスではありません。私はフリーメーカーAPIを使用してテンプレートを管理していましたが、テンプレートファイルをロードできませんでした。私は 'getTemplate'がAlfrescoのパスを理解していないと思うので、私はすでにエラーを受け取ります – nmalloul

答えて

0

alfrescoリポジトリ内にあるファイルを取得するには、serachServiceを使用する必要があります。 以下のリンクは、searchServiceの使用に役立ちます。

Alfresco Solr SearchService.query() error parsing Xpath

+0

' getTemplate() 'メソッドはテンプレートの名前だけをパラメータとして受け入れるので、' Path'このメソッドのパラメータとして – nmalloul

+0

cfg.getTemplateを使用する必要はありません。さらに詳しくJeffも与えられた答えを見てください。 –

4

目標は、なぜこの変換を行うためのWebスクリプト自体を活用していない、変換されたXMLファイルを使用してあなたのWebスクリプトの応答を持っていることですか?

これを行うには、Freemarkerテンプレートをデータ辞書の現在のホームからWebスクリプトの一部として移動します(リポジトリを配備したWebスクリプトまたはクラスパスを配備したWebスクリプトを使用しているかどうかわかりません - 機能的な違いはありません)。

次に、JavaでバックアップされたWebスクリプトは、データを取得してモデルに挿入します。

Freemarkerテンプレートは、モデル内のデータを使用してXML応答をレンダリングするために自動的に使用されます。

+0

私のwebscriptは変換されたXMLで応答しません。私はftlをロードし、XMLを作成して特定のAlfrescoリポジトリに格納したいと思っています。私の問題は、私はFTLをロードする方法が見つからない、私は自分のlinuxリポジトリにFTLを入れようとしました。そして、そのパスを通してロードすることができます。 'cfg.setDirectoryForTemplateLoading(new file("/home/nmalloul/workspace/workflows/stage-workflow/templates "));'。しかし、私がAlfrescoのパスを使用しても、tempalteが見つからないというエラーが表示されます。 – nmalloul

+1

AlfrescoのパスはAlfrescoによってのみ解決できます。パス引数を取るメソッドを持つFreemarkerクラスは、そのパスが何を意味するのか分からないでしょう。 (1)Alfresco APIを使用してFTLを検索し、それを既知のパスの一時ファイルに書き込んでそのパスを使用するか、または(2)CIFS/SMB共有としてAlfrescoレポをマウントしてそのパスを使用することができます。 Freemarkerへの普通のファイルシステムパスのように見えます。 –

関連する問題