15 Stimmen

Zustandslose Sitzungsbohne mit Instanzvariablen

Ich habe eine zustandslose Session Bean, die eine öffentliche Methode, mehrere private Methoden und einige Variablen auf Instanzebene enthält. Im Folgenden finden Sie ein Pseudocode-Beispiel.

private int instanceLevelVar

public void methodA(int x) { 
  this.instanceLevelVar = x;
  methodB();
}

private void methodB() {
  System.out.println(instanceLevelVar);
}

Was ich sehe, ist, dass MethodeB Werte druckt, die nicht in MethodeA übergeben wurden. Soweit ich das beurteilen kann, druckt sie Werte aus anderen Instanzen derselben Bean. Was könnte dies verursachen?

Ich sollte darauf hinweisen, dass der Code in 99,9 % der Fälle wie erwartet funktioniert. Allerdings ist die .01% verursacht einige ernsthafte Probleme / Bedenken für mich.

Ich verstehe, dass, wenn ich verschiedene öffentliche Methoden hatte dann könnte ich nicht die gleiche Bohne zurück zwischen Aufrufen, die in diesem Verhalten führen würde. In diesem Fall ist jedoch der einzige Aufruf die einzige öffentliche Methode. Wird der Container (in diesem Fall Glassfish) die Beans zwischen den Aufrufen privater Methoden trotzdem austauschen?

(edit) Ich habe "Klassenebene" in "Instanzebene" umbenannt, da dies zu Verwirrung geführt hat.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X