Раньше проблема была в том, что оба интерфейса Local
и Remote
были реализованы, и использовался только интерфейс Remote
, однако в этом нет необходимости. Оба интерфейса имели одинаковые методы, чего следует избегать в соответствии с полученным предупреждением NetBeans:
Когда сессионный компонент имеет как удаленный, так и локальный бизнес-интерфейс, не должно быть никаких методов, общих для обоих интерфейсов.
Подробнее:
Семантика вызова удаленного бизнес-метода сильно отличается
из этого метода местного бизнеса. По этой причине, когда сессионный компонент
имеет как удаленный, так и локальный бизнес-метод, не должно быть
метод, общий для обоих интерфейсов. Пример ниже - неправильное использование
случай:
Remote public interface I1 { void foo();}
Local public interface I2 { void foo();}
Stateless public class Foo implements I1, I2 { ... }
Таким образом, решение состояло в том, чтобы удалить интерфейс Remote
и настроить логику приложения на использование интерфейса Local
.