Service Builderのアップグレード

Liferay DXP 7.1は引き続きService Builderを使用するため、永続性の詳細ではなく、アプリケーションのビジネスロジックに集中できます。 モデルクラス、ローカルおよびリモートサービス、および永続性は引き続き生成されます。

ほとんどのService Builderポートレットのアップグレードには、次の手順が含まれます。

  1. Liferay DXP 7.1のAPIにコードを適合させる
  2. 依存関係を解決する
  3. サービスを構築する

まずはコードを調整することから始めます。

ステップ1:コードをLiferay DXP 7.1のAPIに適合させる

Upgrade Plannerを使用して、ポートレットをLiferay DXP 7.1のAPIに適合させます。 プランナーのアップグレードの問題の修復ステップを実行すると、既存の事象の多くが自動修正されます。 残りの事象については、プランナーは新しいAPIの影響を受けるコード、およびそれを適応させる方法を特定します。

たとえば、次のコンパイルエラーがあるサンプルポートレットについて検討します。

/html/guestbook/view.jsp(58,1) PWC6131: Attribute total invalid for tag search-container-results according to TLD

view.jspファイルは、Liferay DXP 7.1のliferay-uiタグライブラリに存在しないタグライブラリ属性totalを指定します。 2番目の属性totalに注意してください。

<liferay-ui:search-container-results
    results="<%=EntryLocalServiceUtil.getEntries(scopeGroupId,
                    guestbookId, searchContainer.getStart(),
                    searchContainer.getEnd())%>"
    total="<%=EntryLocalServiceUtil.getEntriesCount(scopeGroupId,
                    guestbookId)%>" />

このようなタグを作るため、total属性の割り当てを削除します。

<liferay-ui:search-container-results
    results="<%=EntryLocalServiceUtil.getEntries(scopeGroupId,
                    guestbookId, searchContainer.getStart(),
                    searchContainer.getEnd())%>" />

コードが新しいAPIに適応するまで、これらのエラータイプなどを解決します。

ステップ2:依存関係を解決する

アプリケーションの依存関係を適合するには、チュートリアルResolving a Plugin’s Dependenciesを参照してください。 依存関係がアップグレードされたら、サービスを再構築してください。\

ステップ3:サービスを構築する

ポートレットのサービスを再構築するには、記事Running Service Builderを参照してください。

以前のService Builderコードをアップグレードすると、異なる結果を生成する可能性があります。その変更の例を次に示します。

Liferay Portal 6.2ポートレットのservice.xmlファイルは、exception要素で例外クラス名を次のように指定します。

<service-builder package-path="com.liferay.docs.guestbook">
    ...
    <exceptions>
        <exception>GuestbookName</exception>
        <exception>EntryName</exception>
        <exception>EntryMessage</exception>
        <exception>EntryEmail</exception>
    </exceptions>
</service-builder>

Liferayポータル6.2では、Service Builderはpackage-pathが指定するパス属性に、例外クラスを生成します。 Liferay DXP 7.1では、Service Builderはそれらを[package-path]/exceptionに生成します。

古いパス:

[package-path]

新しいパス:

[package-path]/exception 

例として、サンプルポートレットのパッケージパスはcom.liferay.docs.guestbookです。 exception要素GuestbookName用の例外クラスは、docroot/WEB-INF/service/com/liferay/docs/guestbook/exceptionへ生成されます。 例外を使用するクラスは、com.liferay.docs.guestbook.exception.GuestbookNameExceptionをインポートする必要があります。 Service Builderプロジェクトでこのアップグレードが必要な場合は、ポートレットの例外クラスへの参照をアップデートする必要があります。

Service Builderポートレットがアップグレードされたら、デプロイします。

これでポートレットがLiferay DXPで利用可能になりました。 Service Builderを使用するポートレットのアップグレードはこれで完了です。\

« Service Builderサービス呼び出しのアップグレードVelocityテンプレートからの移行 »
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています