2011-06-24 10 views
2

私の質問はLiferayフックとポートレット6.0についてです。フックのLiferayポータルjspsを含む

私はliferayポートレットのものを上回るjspでフックを持っています。例えばdocument_library/view.jsp - テスト済み - 正常に動作します。 (私はcustom-jsp-dirを設定しています)

このフックでは、最後にフックのdocument_library/view.jspをレンダリングするポートレットを作成します。

しかし、私はエラーを取得:

org.apache.jasper.JasperException: /WEB-INF/html/portlet/document_library/view.jsp(17,1) File "/html/portlet/document_library/init.jsp" not found 

を私はinit.jsp作成していない - 私はこのフックは、Liferayのdocument_libraryオリジナルのものを使用します。

私を助けることができますか?

私はここにもhttp://www.liferay.com/community/forums/-/message_boards/message/9583788

を尋ねたが、あなたに

答えて

3

短い答えをありがとう:あなたはできません。

理由:hooks custom-jspディレクトリのJSPがポータルにコピーされるため、liferayのクラスローダーで実行されます。ただし、ポートレットはプラグインのクラスローダーで実行されるため、ライフ・セーバーのJSPにはアクセスできません。

フック内のJSP(ポータルのカスタムjspとして宣言されているJSP)は、同じプラグインのポートレットからは使用できません。これは設計によるもので、ポートレットが到達できるパスにそれらをコピーする以外には、この問題を回避することはできません。

ベストプラクティスとして、私はLiferayと新しい(追加の)ポートレットを持つ別個のポートレットプラグインに変更するためのフックを作成することをお勧めします。ポートレットを自己完結型にします。フックとポートレットを組み合わせるのが良い状況がありますが、変更と追加が分かれているのが一番好きです。

関連する問題