Компонент без сохранения состояния не предоставляет реализованный метод интерфейса по умолчанию - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть метод по умолчанию, определенный на интерфейсе (AsynchronousTarget), и затем реализую этот интерфейс с помощью компонента @Stateless.Вот интерфейс и bean-компонент:

public interface AsynchronousTarget {    
   default void invoke(String id) {
          ...
   }
}

@Stateless
@Local(value = { ApplicationTransfer.class, AsynchronousTarget.class})
public class ApplicationTransfer implements AsynchronousTarget {
}

Я ожидал, что мой bean-компонент предоставит доступ к этому методу, но когда я внедряю bean-компонент с помощью CDI @Inject через интерфейс и пытаюсь вызвать метод, он выдает следующую ошибку:

Caused by: java.lang.IllegalStateException: WFLYEE0067: Method does not exist public abstract void AsynchronousTarget.invoke(java.lang.String)
at org.jboss.as.ee.component.BasicComponentInstance.getInterceptor(BasicComponentInstance.java:102)
at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:52)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:54)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:185)
... 267 more
...