2016-11-25 8 views
2

Liferay 6.2ではService Builderに問題はありませんでしたが、最初のFinder Utilクラスを生成するサービスをビルドするときにLiferay 7でブロック問題が発生します。 私がそれを発見したとき、私は最初からプロジェクトを始めることを決めましたが、問題はまだここにあります。 公式の文書でも、何も動作しません。Finder UtilクラスがLiferay 7で生成されていないサービスビルダー

誰かが私を助ける考えがありますか?

ここではEclipseの火星での私の最後のテストのための完全な説明されています

  1. は新しいLiferayのワークスペース
  2. を作成
  3. 新しいLiferayのプロジェクトモジュールサービスビルダを作成service.xmlをしてfooというオブジェクトを作成します。
  4. ビルドサービス (クラスがうまく生成されます)
  5. persistence.implパッケージ
  6. 01で手動FooFinderImplクラスを作成します。
  7. ビルドサービス
    FooFinderインターフェイスはよく生成されますただし、FooFinderUtilクラスは生成されません。
  8. はFooFinderImplクラスで
  9. ビルドサービスあなたが助けるために

ありがとう新しい

  • 何もいくつかのメソッドを追加します。ヴィンセント

  • 答えて

    2

    あなたはUtilのクラスがfalseにosgiModuleを設定する必要があります生成したいので、もしbuild.gradleでいくつかのプロパティがあるサービスを構築

    。上

    buildService { 
        apiDir = "../foo-api/src/main/java" 
        osgiModule = false 
        propsUtil = "com.liferay.docs.foo.service.util.PropsUtil" 
    } 
    

    あなたがOSGiのを使用したい場合はそれ以外の場合は、あなたがより多くの情報のために、このよう

    @Reference 
    private volatile FooFinder fooFinder; 
    

    または

    @Reference(unbind = "-") 
    protected void setFooFinder(
         FooFinder fooFinder) { 
    
        _fooFinder = fooFinder; 
    } 
    
    private FooFinder _fooFinder; 
    

    ファインダーをretriveすることができますが、Liferayの-ドキュメントを参照してくださいhttps://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/finding-and-invoking-liferay-services

    exampelギブスhttp://github.com/bruinen/liferay-services-example

    +0

    ありがとうございました! あなたの最初の提案は問題を解決しましたが、私はOSGIを維持します。 だから、私はちょうど2番目を試しましたが、私のファインダーはnullです、私はどこにでもそれを宣言しなければなりませんか? – Vincent

    +0

    私は編集で追加する他のコードを試すことができます。リファレンス・テイクはインタフェースのサービス実装を取ります。したがって、osgiバンドルfoo-serviceとfoo-apiをデプロイするだけで済みます。ファインダ 'Import-Package:com.liferay.foo.service'を使用してバンドルにパッケージをインポートしてみてください。 –

    +0

    私のファインダーはまだ3番目のソリューションではヌルですが、私はあなたが言及したLiferayのドキュメントを読むつもりです。私はあなたにニュースを伝えます。 – Vincent

    関連する問題