Czy powinienem zadeklarować zmienne wstrzykiwane jako transient
w Java EE?Czy powinienem zadeklarować wstrzykiwane zmienne jako przejściowe w Java EE?
Dostaję ostrzeżenie FindBugs:
Klasa com.playaround.HelloServlet określa zakaz przejściowy zakaz serializacji instancji pola accelerationUnit
Ten Serializable klasa definiuje zakaz prymitywny instancji pole, które nie jest ani przemijający, Serializable lub java.lang.Object i nie wydaje się implementować interfejsu Externalizable lub metody readObject() i writeObject().
Obiekty tej klasy nie zostaną prawidłowo sformatowane, jeśli w tym polu przechowywany jest obiekt inny niż Serializowalny.
Kod w grze jest:
/**
* Sample of a web service reference.
*/
@WebServiceRef
private AccelerationUnit accelerationUnit;
samo pytanie dotyczy @Resource
, @Inject
, @PersistenceUnit
itp
Należy ponownie edytować pytanie, aby ograniczyć go do AT WebServiceRef tylko dlatego, że nad tym pracowałem. Zauważyłem jednak, że mam ten sam problem, jeśli wstrzyknięto AT PersistenceUnit i AT EJB do serwletu, więc pomyślałem, że można go rozszerzyć. –