Eclipse Scout Neon: реестр служб не содержит службу типа

Я пытаюсь вызвать службу разведки из Формы разведки, поэтому я создаю интерфейс в общей папке.

@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

Похоже, что интерфейс не зарегистрирован, но в Neon я думал, что сервис зарегистрирован с аннотацией @TunnelToServer.

Где еще я должен зарегистрировать службу?

Этот проект является расширением основного проекта.

В основном проекте все сервисы работают,....


person Marko Zadravec    schedule 08.01.2016    source источник
comment
Все ли в порядке в вашем POM? Я предполагаю, что ваш яндекс неверен, и поэтому ваш сервис не найден.   -  person Jmini    schedule 08.01.2016


Ответы (2)


Решение: поместите scout.xml с содержимым по умолчанию в папку src/main/resources/META-INF серверного проекта.

Почему это случилось? Поскольку это расширение, мы, по-видимому, забыли скопировать этот файл, а Scout Neon, похоже, игнорирует проекты, не содержащие этот файл.

Выяснил это, поместив PlatformListener в этот проект, и, поскольку он никогда не срабатывал, было легче отследить проблему.

person Neikius    schedule 11.01.2016

Эта аннотация запрашивается для Remote-Service (см. также 3.5). .1. раздел @TunnelToServer). Класс реализации (или интерфейс) должен иметь аннотацию @ApplicationScoped.

Для Local-Service используйте аннотацию @Bean или @ApplicationScoped для регистрации службы.


Если ваши аннотации верны, ваш индекс Jandex может быть поврежден. Запустите приложение с помощью -Djandex.rebuild=true, чтобы перестроить приложение при запуске.

Это пересчитает каждый из ваших target/classes/META-INF/jandex.idx файлов.

Конечно, вы также можете удалить каждый файл вручную. Запуск mvn clean также очищает эти файлы.

person Jmini    schedule 08.01.2016
comment
Нет, это не решает мою проблему. Я пытаюсь поместить Bean и ApplicationScoped в свой класс реализации, но получаю ту же ошибку. - person Marko Zadravec; 08.01.2016