1

Scout Form から scout サービスを呼び出そうとするので、共有フォルダにインターフェースを作成する

@TunnelToServer
public interface IPersonsFormService extends IService {

  void test();
}

サーバーで、このインターフェイスの実装を作成しました

public class PersonsFormService implements IPersonsFormService {

  @Override
  public void test() {

    System.out.println("TEST");

  }

}

しかし、私は得る

o.e.scout.rt.platform.exception.ExceptionHandler - SecurityException:service registry does not contain a service of type com.sixt.leasing.contract.scout.shared.person.IPersonsFormService [majorPrincipal: 'marko']
java.lang.SecurityException: service registry does not contain a service of type com.sixt.leasing.contract.scout.shared.person.IPersonsFormService

@TunnelToServerインターフェースが登録されていないように見えますが、Neonではサービスがアノテーションで登録されていると思いました 。

他にどこでサービスを登録すればよいですか?

このプロジェクトは、メイン プロジェクトの拡張プロジェクトです。

主なプロジェクトでは、すべてのサービスが動作します....

4

2 に答える 2

1

解決策:サーバー プロジェクトのフォルダーにscout.xml既定のコンテンツを配置します。src/main/resources/META-INF

なぜこれが起こったのですか?これは拡張子であるため、このファイルをコピーするのを忘れていたようで、Scout Neon はこのファイルを含まないプロジェクトを無視しているようです。

そのプロジェクトに PlatformListener を配置することでこれを理解しました。それがトリガーされなかったため、問題を追跡するのが簡単になりました。

于 2016-01-11T14:01:34.673 に答える
0

この注釈は、Remote-Service に対して要求されます ( 3.5.1. @TunnelToServerセクションも参照してください)。実装クラス (またはインターフェース) には@ApplicationScopedアノテーションが必要です。

Local-Service の場合、@Beanまたは@ApplicationScopedアノテーションを使用してサービスを登録します。


注釈が正しい場合、Jandex インデックスが壊れている可能性があります。でアプリケーションを起動して、起動時にアプリケーション-Djandex.rebuild=trueを再構築します。

これにより、各target/classes/META-INF/jandex.idxファイルが再計算されます。

もちろん、各ファイルを手動で削除することもできます。実行mvn cleanすると、これらのファイルも消去されます。

于 2016-01-08T12:19:31.777 に答える