У меня есть метод по умолчанию, определенный на интерфейсе (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