2016-12-16 3 views
0

Ich möchte eine nicht beanspruchte Instanz einer Bean erhalten, damit ein anderes Modul nicht bricht, da es eine Ausnahme auslöst, die anzeigt, dass das Objekt, das ich übergebe, nicht vom richtigen Typ ist .CDI - unexpected Instanz von Bean

Ist das möglich, wenn ja wie? Ich möchte keine neue Instanz des Objekts erstellen, da bereits ein Status gespeichert ist. Ich hoffe, dass es einen kurzen und schnellen Weg für mich gibt, das tatsächliche Objekt von der proxied-Instanz zu bekommen.

+0

Können Sie die von der anderen Bibliothek erzeugte Ausnahme teilen? Es könnte sein, dass Sie nur eine Pseudo-Scoped-Bean verwenden müssen - '@ Dependent' oder' @ Singleton' –

Antwort

0

Sie können nicht in keiner Implementierung implementieren, und Sie sollten nicht.

Das einzige, was Sie tun können, ist einen Bereich zu verwenden, der keine Proxies benötigt. Die beiden häufigsten sind @ javax.enterprise.context.Dependent und @ javax.inject.Singleton.

Je nach Anwendungsfall können Sie es möglicherweise in einen @Dependent-Bereich umbrechen.

+0

Danke, das hat funktioniert. – Walter

+0

Eigentlich müssen Sie Ihre Klasse so reorganisieren, dass der Standardkonstruktor nichts initialisiert. – temaleva

+0

@temaleva Wie ist das mit der Frage verbunden? –

Verwandte Themen