Должно выводиться сообщение "ворк", но не выводится.
Код класса с сообщением:
package test1;
import javax.interceptor.AroundInvoke;
import javax.interceptor.InvocationContext;
public class Method1 {
@AroundInvoke
public Object inter(InvocationContext ictx) throws Exception {
System.out.println("Work");
return ictx.proceed();
}
}
Код класса, в который я хочу "вставить" код с сообщением:
package test1;
import javax.ejb.Stateless;
import javax.interceptor.Interceptors;
@Stateless
public class Work {
@Interceptors(Method1.class)
void work() {
}
}
ну и мейн:
package test1;
public class Test1 {
public static void main(String[] args) {
Work work = new Work();
work.work();
}
}
Java EE API это стандарт согласно которому происходит взаимодействие с сервером приложений. Реализацию предоставляет сервер.
Для того чтобы использовать Java EE API, в частности @Interceptors нужно выполнять код в контейнере Java EE. Для этого нужно:
В коде будет выглядеть примерно так:
@Inject
Work work;
...
//обращение из веб-сервиса, приложения, другого EJB
work.work;
...
В приведенном примере локальный класс Test1
создает объект класса Work
. Аннотации обрабатывать нечему, соответственно работать они не будут.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Дано: при нажатии на кнопку из адаптера во фрагмент передается Parcelable: